Перейти к содержимому

Примечания для разработчиков

Хотя фактическая установка XOOPS для использования в разработке аналогична нормальной установке, уже описанной ранее, существуют ключевые различия при создании системы, готовой для разработчика.

Одно большое различие в установке разработчика состоит в том, что вместо простого сосредоточения внимания на содержимом каталога htdocs, установка разработчика хранит все файлы и хранит их под контролем исходного кода с помощью git.

Еще одно различие заключается в том, что каталоги xoops_data и xoops_lib обычно могут остаться на месте без переименования, если только ваша система разработки не доступна напрямую в открытом Интернете (т.е. в частной сети, например, позади маршрутизатора).

Большинство разработчиков работают в системе localhost, которая имеет исходный код, стек веб-сервера и любые инструменты, необходимые для работы с кодом и базой данных.

Вы можете найти более подробную информацию в главе Инструменты ремесла.

Большинство разработчиков хотят иметь возможность быть в курсе текущих источников и вносить изменения обратно в репозиторий XOOPS/XoopsCore27 на GitHub. Это означает, что вместо загрузки архива выпуска вы захотите разветвить копию XOOPS и использовать git для клонирования этого репозитория на вашу машину разработки.

Так как репозиторий имеет определенную структуру, вместо копирования файлов из каталога htdocs на веб-сервер, лучше указать веб-сервер на папку htdocs внутри вашего локально клонированного репозитория. Чтобы достичь этого, мы обычно создаем новый виртуальный хост или vhost, который указывает на наш контролируемый git исходный код.

В среде WAMP страница localhost по умолчанию имеет в разделе Tools ссылку на Add a Virtual Host, которая ведет сюда:

WAMP Add Virtual Host

С помощью этого вы можете установить запись VirtualHost, которая будет указывать прямо на ваш (еще) контролируемый git репозиторий.

Вот пример записи в wamp64/bin/apache/apache2.x.xx/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
ServerName xoops.localhost
DocumentRoot "c:/users/username/documents/github/xoopscore27/htdocs"
<Directory "c:/users/username/documents/github/xoopscore27/htdocs/">
Options +Indexes +Includes +FollowSymLinks +MultiViews
AllowOverride All
Require local
</Directory>
</VirtualHost>

Вам также может потребоваться добавить запись в Windows/System32/drivers/etc/hosts:

127.0.0.1 xoops.localhost

Теперь вы можете установить на http://xoops.localhost/ для тестирования, сохраняя при этом ваш репозиторий нетронутым, и держа веб-сервер внутри каталога htdocs с простым URL. Плюс, вы можете обновить вашу локальную копию XOOPS до последнего master в любое время без необходимости переустановки или копирования файлов. И вы можете вносить улучшения и исправления в код для внесения вклада в XOOPS через GitHub.

XOOPS 2.7.0 использует Composer для управления своими PHP зависимостями. Дерево зависимостей живет в htdocs/xoops_lib/ внутри репозитория исходного кода:

  • composer.dist.json — это главный список зависимостей, поставляемых с выпуском.
  • composer.json — это локальная копия, которую вы можете настроить для вашей среды разработки при необходимости.
  • composer.lock фиксирует точные версии, поэтому установки воспроизводимы.
  • vendor/ содержит установленные библиотеки (Smarty 4, PHPMailer, HTMLPurifier, firebase/php-jwt, monolog, symfony/var-dumper, xoops/xmf, xoops/regdom и другие).

Для свежего клона git XOOPS 2.7.0, начиная с корня репозитория, запустите:

cd htdocs/xoops_lib
composer install

Обратите внимание, что в корне репозитория нет composer.json — проект находится под htdocs/xoops_lib/, поэтому вы должны cd в этот каталог перед запуском Composer.

Тарболлы выпуска поставляются с предварительно заполненным vendor/, но клоны git могут и не иметь. Сохраняйте vendor/ нетронутым при установке разработки — XOOPS будет загружать свои зависимости оттуда во время выполнения.

Библиотека XMF (XOOPS Module Framework) поставляется как зависимость Composer в 2.7.0, поэтому вы можете использовать Xmf\Request, Xmf\Database\TableLoad и связанные классы в коде вашего модуля без каких-либо дополнительных установок.

XOOPS 2.7.0 поставляется с модулем DebugBar на основе Symfony VarDumper. Он добавляет панель инструментов отладки к отрендеренным страницам, которая раскрывает информацию о запросе, базе данных и шаблонах. Установите его из области администратора Модулей на сайтах разработки и промежуточной среды. Не оставляйте его установленным на общедоступном производственном сайте, если вы не знаете, что вы это хотите.