Как автоматически загружать пакеты Composer в CakePHP 2 Travis integration
Я работаю над CakePHP 2.X плагин, который использует Composer для извлечения зависимости пакета. Теперь я пытаюсь использовать пакет Friends of CakeTravis для автоматического запуска модульных тестов при обновлении репозитория плагина.
Насколько я могу судить, это не включает файл autoload Composer, необходимый для загрузки в Мои файлы поставщика. В результате мои тесты терпят неудачу, так как класс, определенный в пакете сторонних разработчиков, отсутствует.
Как описано в расширенная установка CakePHP 2 я пытаюсь добавить следующее bootstrap.php
:-
require APP . 'Vendor' . DS . 'autoload.php';
Я попытался сделать это через before_script
моего .travis.yml
файла для добавления bootstrap.php
:-
before_script:
- git clone https://github.com/FriendsOfCake/travis.git --depth 1 ../travis
- ../travis/before_script.sh
- echo "require APP . 'Vendor' . DS . 'autoload.php';" >> ../cakephp/app/Config/bootstrap.php
К сожалению, это не удается, так как файл APP . 'Vendor' . DS . 'autoload.php'
не может быть найден. (Я также попытался найти файл в APP . '..' . DS . 'Vendor' . DS . 'autoload.php'
).
Где находится файл Composer autoload.php
при установке CakePHP с помощью Travis? Как я могу гарантировать, что мой сторонний пакет загружен, когда мои тесты выполняются удаленно на Travis Ки?
2 ответа:
Имя каталога по умолчанию для сторонних плагинов -
vendor
(нижний регистр), CakePHP имеетVendor
, Вы можете изменить его в.../app/composer.json
{ "config": { "vendor-dir": "Vendor" // CakePHP third party plugins dir name }, "require": { ... } }
Решение состояло в том, чтобы изменить папку
Vendor
в оператореrequire
на строчнуюvendor
в операторе {3]}.before_script
:-before_script: - git clone https://github.com/FriendsOfCake/travis.git --depth 1 ../travis - ../travis/before_script.sh - echo "require APP . 'vendor' . DS . 'autoload.php';" >> ../cakephp/app/Config/bootstrap.php
После того, как правильно делать это в CakePHP содержит композитор файл автозагрузки.