Как автоматически загружать пакеты 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 содержит композитор файл автозагрузки.