【发布时间】:2016-08-31 15:57:13
【问题描述】:
我有一个插件 (FirstPlugin)。
该插件从其引导程序加载第二个插件 (SecondPlugin),它们都可以正常工作。
现在我正在为FirstPlugin 编写测试,我需要将SecondPlugin 加载到测试中。
所以在测试引导程序 (FirstPlugin/tests/bootstrap.php) 中,我只需要主引导程序 (FirstPlugin/config/bootstrap.php):
require ROOT . 'config' . DS . 'bootstrap.php';
我这样做是因为我还需要其他引导代码(常量、缓存设置等)。
这不起作用,我不明白这是什么问题。
注意我已经为FirstPlugin修改了composer.json:
"autoload": {
"psr-4": {
"FirstPlugin\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"FirstPlugin\\Test\\": "tests",
"SecondPlugin\\": "vendor/second-plugin-path/src"
}
},
而SecondPlugin 是通过composer 安装的,位于vendor/ 中。
编辑
这里抛出异常:
http://api.cakephp.org/3.2/source-class-Cake.Core.Plugin.html#149
这意味着$config['path'] 是空的。
我认为的问题是: http://api.cakephp.org/3.2/source-class-Cake.Core.Plugin.html#134
也许在测试的引导中我必须手动设置配置值?
【问题讨论】:
-
"不起作用" 不是正确的问题描述!即使问题对于了解 CakePHP 内部结构的人来说可能很明显,但请始终尽可能具体地说明究竟会发生什么,以及您希望发生什么。 ps,
FirstPlugin和SecondPlugin怎么能共享同一个文件夹,即src? -
@ndm,对不起,我的意思是说我得到了一个
MissingPluginException异常运行测试。他们不共享同一个文件夹,SecondPlugin是通过 composer 安装的,它位于vendor/ -
没错,我已经设置了插件的确切路径(
vendor /),但我仍然有同样的问题 -
@ndm 查看我的编辑。
标签: cakephp cakephp-3.0