Настройка Eclipse PDT 2020 и Git для Pulls для частного проекта на Joomla 4

  1. Введение
  2. Структура Файла
    1. Рабочее пространство
    2. Локальный репозиторий git и тестовый веб-сайт
    3. Отдельный тестовый веб-сайт
  3. Необходимое программное обеспечение
  4. Форк CMS Joomla 4 на Github
  5. Установка Eclipse
  6. Импорт форка в Eclipse
  7. Добавление оригинального репозитория CMS Joomla 4 в Eclipse
  8. Создание рабочего сайта на CMS Joomla 4
    1. На моем Mac работает macOS Catalina
    2. На моей рабочей станции Linux под управлением Linux Mint 20
  9. Пересмотр кода
  10. Тем временем
  11. Если произойдет катастрофа
  12. Прочие ресурсы
  13. Дополнительно
    1. Создание build-local.xml файла
    2. Добавление инструмента сборки


Введение

Я впервые начал использовать Eclipse много лет назад для частного проекта Joomla и частного удаленного репозитория git, расположенного не на Github. Я прочитал доступные учебные пособия и счастливо путался до этого года, когда я перешел к попытке помочь с основным тестированием и исправлением ошибок для Joomla 4. А затем несколько запросов на pull request. Именно тогда я понял, что не совсем понимаю, что делаю. В конце концов я решил начать все сначала и задокументировать процесс для других не опытных разработчиков, которые новички в Joomla, особенно те части, которые я не полностью оценил в первый раз. Первый в списке:

Структура Файла

До загрузки и установки Eclipse не очевидно, что существует по крайней мере два места, где хранятся данные, помимо того, где находится код Eclipse.

Рабочее пространство

Именно здесь Eclipse хранит свои собственные данные для каждого проекта. Его не должно быть в структуре веб-страниц! Поскольку я работаю в основном на ноутбуке Mac, местоположение по умолчанию для меня /Users/username/eclipse-workspace. Для каждого проекта существует подпапка. Таким образом, одним из них может быть /Users/username/eclipse-workspace/joomla-cms. Он содержит одну папку: .metadata. Пользователи Linux, вероятно, знают, как заменить домашнюю директорию пользователя.

Локальный репозиторий git и тестовый веб-сайт

Здесь хранится код проекта. Это может быть в локальной папке веб-проекта, если вы хотите использовать его для тестирования. Для меня это /Users/username/Sites/joomla-cms-4. Пользователи Linux, вероятно, знают, как заменить расположение папки public_html. Следите за дополнительными шагами, необходимыми для того, чтобы локальный репозиторий работал как сайт Joomla.

Отдельный тестовый веб-сайт

Это необязательно, но требует, чтобы репозиторий git имел пользовательский build.xml файл, скажем build-local.xml, описанные в Приложении.

Необходимое Программное обеспечение

Чтобы создать рабочий веб-сайт для разработки и тестирования на CMS Joomla 4, вам сначала необходимо установить следующее программное обеспечение:

Первые три или четыре часто поставляются в комплекте для вашей платформы, известной как стек LAMP, WAMP или XAMP. Просто используйте все, что предлагает ваша платформа, или посмотрите здесь: https://www.apachefriends.org/

Давайте предположим, что вы установили все, кроме Eclipse:

Форк CMS Joomla 4 на Github

Существует рабочий процесс, описанный в моем первом запросе на вывод Joomla на Github, который я не могу слишком высоко оценить. Это показывает, что именно вам нужно сделать:

Перейдите на Github и получите учетную запись бесплатно и быстро

Шаги

  • Перейдите на Github и получите учетную запись бесплатно и быстро: https://github.com/
  • В своей учетной записи github перейдите в репозиторий joomla/joomla-cms: введите joomla/joo... в левом верхнем поле поиска и выберите, когда появятся параметры.
  • В репозитории joomla/joomla-cms нажмите кнопку "fork" в правом верхнем углу. Это дает вам копию всего кода для Joomla 3, Joomla 4, ..., всего, в вашей собственной учетной записи на Github.

Возвращайтесь на свою рабочую станцию.

Установка Eclipse

У меня уже установлены две версии Eclipse: Oxygen несколько лет назад и Cocoa 2020 года. С этого момента я устанавливаю второй экземпляр Cocoa. Давайте посмотрим, что произойдет:

  • Перейдите на сайт Eclipse и загрузите версию для своей платформы: https://www.eclipse.org/pdt/
  • Следуйте процедуре установки и в конечном итоге запустите приложение Eclipse, для меня Eclipse 2.app.
  • Внимание:
    • “Eclipse 2.app” - это приложение, загруженное из Интернета. Вы уверены, что хотите его открыть? Open
  • Выберите каталог в качестве рабочей области - По умолчанию /Users/username/eclipse-workspace. Browse и создайте подпапку joomla-cms-4.
  • Запуск: Eclipse установлен и отображает страницу приветствия.
  • Просмотрите параметры конфигурации IDE. Установите пункты 1, 2, 5 и 6.
  • Выберите значок рабочего стола в правом верхнем углу.

(Вместо установки другой версии Eclipse я мог бы открыть новое пустое рабочее пространство.)

Пока все идет хорошо!

Импорт форка в Eclipse

В вашей новой локальной установке Eclipse:

  • Откройте Настройки и установите Team / Git / Default repository папку в /Users/username/git (вы можете использовать или не использовать это местоположение)
  • Откройте File / Import / Git / Projects from Git (с помощью интеллектуального импорта (smart import)). Далее...
  • Clone URI. Далее...
  • Скопируйте строку URL-адреса из вашего Github fork и вставьте ее в поле URL. Вам не нужно добавлять учетные данные для аутентификации. Далее...
  • Branches to import ... э-э-э ... .. Вероятно, лучше всего импортировать все. Далее...
  • Directory. Здесь вы можете выбрать другое место для хранения кода. Я перешел в /Users/username/public_html/joomla-cms-4, создав его при необходимости.
  • Initial branch - если вы импортировали все ветви. Я работаю над Joomla 4, поэтому выбрал 4.0-dev. И я отметил, что моим клоном будет origin. Далее...
  • Иди варить кофе. Клонирование займет несколько минут.
  • Import source. Источником должно быть расположение кода. Финал, занавес.
  • Eclipse теперь показывает корень дерева кода на панели обозревателя проектов. Нажмите, чтобы увидеть больше дерева. Обратите внимание, что этот код еще не будет работать как сайт Joomla. Среди прочего, здесь нет папки с мультимедиа.

Добавление оригинального репозитория CMS Joomla 4 в Eclipse

  • Показать окно репозитория Git: выберите Window / Show View / Other
  • Выберите Git / Git Repositories - в нижней части экрана появится окно.
  • Разверните joomla-cms / remotes / origin - если вы внесете изменения в свой код и нажмете на origin, вот куда это приведет.
  • Щелкните правой кнопкой мыши на Remotes и выберите Create Remote...
  • Установите Remote name в joomla-origin и выберите Configure fetch.
  • В разделе Configure Fetch выберите Change.
  • В поле Select a URI в URL-адрес исходного репозитория joomla-cms: https://github.com/joomla/joomla-cms
  • Оставьте учетные данные пустыми. Финал!
  • в разделе Configure Fetch: Save and Fetch.

Создание рабочего сайта на CMS Joomla 4

Вашей копии кода joomla-cms требуется больше действий, чтобы сделать ее пригодной для использования в качестве веб-сайта.

  • Откройте терминал и перейдите в папку, содержащую ваш клонированный код.
  • Запустите установку composer:
    • Пользователи Linux и OSX могут настроить следующий псевдоним bash, поместив его в файл ~/.bash_profile или ~/.zsh ($ source ~/.bash_profile вступает в силу немедленно):
alias jclean="rm -rf administrator/templates/atum/css; rm -rf templates/cassiopeia/css; rm -rf media/; rm -rf node_modules/; rm -rf libraries/vendor/;rm -f administrator/cache/autoload_psr4.php;rm -rf installation/template/css"
alias jinstall="jclean; composer install --ignore-platform-reqs; npm ci"
  • Composer нет в моих настройках, поэтому я заменил php ~/composer/composer.phar
  • jinstall
  • , который извлекает все зависимости Joomla PHP, зависимости Javascript, компилирует все Javascript ES6 и помещает файлы в соответствующие места.
  • и снова кофе, пока загружаются зависимости и создаются медиафайлы.
  • В Eclipse щелкните правой кнопкой мыши корень проекта и выберите Refresh. Вы увидите, что в вашем коде теперь есть папка с мультимедиа.
  • Если вам интересно, используйте файловый менеджер, чтобы увидеть, что корень также содержит имя файла .gitignore и в нем указана папка мультимедиа.
  • Это означает, что он не будет передан в ваши локальные или удаленные разветвленные репозитории git.

Теперь вы готовы к установке Joomla:

  • Создайте базу данных с помощью phpMyAdmin (или командной строки mysql, если хотите).
  • Я создал базу данных с именем joomla-cms-4 с параметрами сортировки utf8mb4-unicode-ci.
  • Создайте нового пользователя: мой - jcms4 с сгенерированным случайным паролем (GAOC26r77bBLkkdA). Вам необходимо записать пароль для использования во время установки. Пароль и настройки базы данных записываются обычным текстом в файле конфигурации CMS Joomla 4.
  • Предоставьте все привилегии в базе данных этому пользователю - the default.
  • В вашем любимом браузере перейдите в корень нового сайта: localhost/joomla-cms-4/

На моем Mac работает macOS Catalina

  • Настройка среды завершена: Более подробная информация. Просто исправьте это и проверьте, что строка URL содержит URL, который вы ввели - мой каким-то образом добавил несколько дополнительных символов.
  • В противном случае он перейдет на рабочий сайт - не удаляйте папку установки.

На моей рабочей станции Linux под управлением Linux Mint 20

Ой! Что-то пошло не так!

Загвоздка в том, что у меня есть код Joomla в моем личном файловом пространстве для доступа Eclipse для чтения/записи. Веб-серверу также необходим доступ на запись для записи конфигурации, кэша и файлов журналов, но он работает как пользователь и группа с низкими привилегиями. Поскольку я нахожусь в частной домашней сети, я отредактировал /etc/apache2/apache2.conf, чтобы исправить пользователя ${APACHE_RUN_USER} и группу ${APACHE_RUN_GROUP} и добавить User myusername и Group mygroupname. После этого перезапустите apache...

  • Он переходит на рабочий сайт - не удаляйте папку установки.

Пересмотр кода

Вкратце:

  • Fetch from joomla-origin, чтобы убедиться, что мой локальный клон обновлен.
  • Team / Merge / Select branch to merge - care - Я выбрал joomla-origin/4.0-dev
  • Нажмите на origin, чтобы убедиться, что моя локальная ветка обновлена.
  • Создайте Branch для некоторых изменений кода, которые нужно внести.
  • Внесите изменения в код
  • Если изменения касаются исходных файлов css или js (в sass или es6), перейдите в окно терминала и снова запустите jinstall.
  • ПРОВЕРЬТЕ локальную установку, чтобы узнать, нет ли каких-либо проблем.
  • Commit - Зафиксируйте изменения в коде
  • Нажмите на origin, чтобы обновить свою локальную ветку с прочими изменениями в оригинальной ветке разработки.
  • Зайдите в свою учетную запись на Github и выберите ветку, которую вы создали с обновленным кодом. Что-то страшное: в нем говорится, что эта ветка имеет 11084 коммита впереди, 134 коммита позади joomla:staging. Я сделал что-то не так? Очевидно, нет!
  • Нажмите кнопку "Pull Request". Убедитесь, что вы выбрали правильную ветвь joomla для слияния. Для меня это 4.0-dev. И убедитесь, что вы выбрали свою ветвь с измененным кодом. Так держать!
  • Запрос на вывод (pull request) должен быть протестирован и одобрен и может занять несколько дней, недель или месяцев. И изменение может быть отклонено!

Тем временем

Вернитесь на свою рабочую станцию:

  • Переключитесь обратно в свою исходную ветвь, для меня: Team / Switch To / 4.0-dev
  • Rebuild: for me Project / Build Project
  • Посмотрите, как ранее измененные файлы снова копируются на ваш рабочий сайт.
  • ТЕСТ: ваш рабочий сайт вернулся к тому, каким он был до изменения кода.

Теперь вы готовы создать другую ветвь для другого набора изменений кода.

Если произойдет катастрофа

На одном этапе мой локальный клон каким-то образом был поврежден, и я понятия не имел, как это исправить. Поэтому я удалил свой локальный клон и все связанные с ним файлы, очистил базу данных, а затем вернулся к развилке импорта на этапе Eclipse выше. Это синхронизирует мой локальный клон с моей локальной веткой, включая все ветви, которые я создал для запросов на извлечение. Новая установка работала без сучка и задоринки, и я был счастлив!

Прочие ресурсы

Дополнения

На одном этапе у меня локальный репозиторий git был за пределами моего веб-корня, и мне нужно было копировать любые изменения, внесенные мной, на отдельно установленный локальный сайт. Для этого требовался файл пользовательской сборки, показанный здесь для справки:

Создание build-local.xml файла

Клон Eclipse содержит build.xml файл, но он используется для тестирования и создания загружаемого zip-файла для новой установки. Что я хочу сделать, так это скопировать любые изменения, которые я внесу в свой клонированный код, на свой тестовый сайт на моем ноутбуке. Обратите внимание, что я хочу вносить изменения только в PHP-код, а не в Javascript или CSS. Для этого я создал отдельный файл с именем build-local.xml в корне проекта:

<?xml version="1.0" encoding="UTF-8"?>
<project name="joomla-cms" basedir="." default="main">
    <property file=".project" />

        <property name="joomladir" value="/Users/username/public_html/joomla-cms"  override="true" />
    
        <property name="srcdir" value="${project.basedir}" override="true" />

    <!-- Fileset for all files -->
    <fileset dir="${srcdir}" id="allfiles">
        <include name="administrator/**" />
        <include name="api/**" />
        <include name="cli/**" />
        <include name="components/**" />
        <include name="images/**" />
        <include name="includes/**" />
        <include name="language/**" />
        <include name="layouts/**" />
        <include name="libraries/**" />
        <include name="modules/**" />
        <include name="plugins/**" />
        <include name="templates/**" />
        <include name="index.php" />

        <exclude name="**/.*" />
    </fileset>

    <!-- ============================================  -->
    <!-- (DEFAULT) Target: main                        -->
    <!-- ============================================  -->
    <target name="main" description="main target">
        <copy todir="${joomladir}">
                <fileset refid="allfiles" />
        </copy>
    </target>
</project>

Добавление инструмента сборки

  • Клик правой кнопкой мыши на корне проекта и выберите Properties.
  • Выберите Builders / New / Program / OK.
  • Имя: Локальная сборка с помощью phing (Local build with phing)
  • Местоположение (Location): везде, где установлен phing (wherever phing is installed). Для меня это /usr/local/php5/bin/phing, хотя я использую PHP 7.4.
  • Рабочий каталог: Просмотрите рабочее пространство и выберите joomla-cms - отображается как ${workspace_loc:/joomla-cms}
  • Аргументы: -f build-local.xml
  • Apply / OK
  • В Builders: Apply and Close
  • Project / Build Project
  • Посмотрим, что произойдет:
Buildfile: /Users/username/git/joomla-cms/build-local.xml
 [property] Loading /Users/username/git/joomla-cms/.project

joomla-cms > main:


BUILD FINISHED

Total time: 0.2121 seconds

Перевод с английского официальной документации Joomla 4:
https://docs.joomla.org/Setting_up_Eclipse_PDT_2020_and_Git_for_Pulls

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню