Поддержка Composer

Начальная настройка

Присутствие в корневой папке репозитория файла composer.json означает, что проект поддерживает менеджер зависимостей Composer. В ходе процесса сборки расширения (с помощью ext-ci), выполняется команда Composer ("composer --no-dev install"). Предполагается, что исходный код расширения находится в папке "src" (например, src/plib/library). Папка "vendor" должна быть создана в папке src/plib:

{
 "name": "plesk/ext-docker",
 "config": {
 "vendor-dir": "src/plib/vendor"
 }
}

Предлагаем добавить ее в файл .gitignore: /src/plib/vendor. Plesk автоматически включает файл vendor/autoloader.php каждого расширения. Смотрите полный пример: https://github.com/plesk/ext-composer-example.

Установка зависимостей
"require": {
 "docker-php/docker-php": "dev-master",
}
Выполнение скриптов после установки:
"scripts": {
 "post-update-cmd": [
 "bash generate.sh"
 ],
 "post-install-cmd": [
 "bash generate.sh"
 ]
}

Выполните команду "composer install" для установки зависимостей.

Пространства имен

В расширениях можно определять их собственные пространства имен (столько, сколько требуется):

"autoload": {
 "psr-4": {
 "PleskExt\\Docker\\": [
 "modules/docker/library/Docker/",
 "src/plib/library/Docker/"
 ]
 }
}

Ниже приводятся два возможных пути для пространства имен:

  • В Plesk: /usr/local/psa/admin/plib/modules/docker/library/Docker
  • В репозитории (для тестирования): ./src/plib/library/Docker

Никаких дополнительных действий не требуется.

Тестирование
"autoload-dev": {
 "psr-4": {
 "PleskExt\\Docker\\Tests\\": "tests/php/unit/",
 "PleskExt\\Docker\\TestHelpers\\": "tests/php/helper/"
 }
},
"require-dev": {
 "phpunit/phpunit": "^5.0"
},
"scripts": {
 "test": "phpunit"
}

Выполните команду "composer test" для запуска инструмента phpunit.