如何在 CakePHP 2 Travis 集成中自动加载 Composer 包
How to autoload Composer packages in CakePHP 2 Travis integration
我正在开发一个 CakePHP 2.x 插件,该插件使用 Composer 引入包依赖项。我现在正在尝试使用 Friends of Cake 的 Travis package 来自动 运行 每当插件的存储库更新时我的单元测试。
据我所知,这不包括在我的供应商文件中加载所需的 Composer 自动加载文件。结果我的测试失败了,因为缺少第三方包中定义的 class。
如 CakePHP 2's advanced installation 中所述,我正在尝试将以下内容添加到 bootstrap.php
:-
require APP . 'Vendor' . DS . 'autoload.php';
我试图通过我的 .travis.yml
文件的 before_script
来附加 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'
中查找文件)。
使用 Travis 安装 CakePHP 时,Composer autoload.php
文件位于何处?当我在 Travis CI 上远程测试 运行 时,如何确保我的第三方包被加载?
解决方法是将require
语句中的Vendor
文件夹改为before_script
中的小写vendor
:-
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 正确包含 Composer 自动加载文件。
第三方插件的默认目录名称是 vendor
(小写),CakePHP 有 Vendor
,您可以在 .../app/composer.json
中更改它
{
"config": {
"vendor-dir": "Vendor" // CakePHP third party plugins dir name
},
"require": {
...
}
}
我正在开发一个 CakePHP 2.x 插件,该插件使用 Composer 引入包依赖项。我现在正在尝试使用 Friends of Cake 的 Travis package 来自动 运行 每当插件的存储库更新时我的单元测试。
据我所知,这不包括在我的供应商文件中加载所需的 Composer 自动加载文件。结果我的测试失败了,因为缺少第三方包中定义的 class。
如 CakePHP 2's advanced installation 中所述,我正在尝试将以下内容添加到 bootstrap.php
:-
require APP . 'Vendor' . DS . 'autoload.php';
我试图通过我的 .travis.yml
文件的 before_script
来附加 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'
中查找文件)。
使用 Travis 安装 CakePHP 时,Composer autoload.php
文件位于何处?当我在 Travis CI 上远程测试 运行 时,如何确保我的第三方包被加载?
解决方法是将require
语句中的Vendor
文件夹改为before_script
中的小写vendor
:-
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 正确包含 Composer 自动加载文件。
第三方插件的默认目录名称是 vendor
(小写),CakePHP 有 Vendor
,您可以在 .../app/composer.json
{
"config": {
"vendor-dir": "Vendor" // CakePHP third party plugins dir name
},
"require": {
...
}
}