我正在尝试将专有的第三方库集成到我的CakePHP应用程序中。我在手册中找到的只是App Class部分,但它基本上是一组示例而不是正确的解释,所以我想猜测。
我觉得你应该尽可能使用App::uses()
替代方案,起初我觉得我很幸运,因为这段代码:
App::build(
array(
'Vendor' => array(
APP . 'Vendor' . DS . 'Acme' . DS. 'API-1.0' . DS . 'base',
APP . 'Vendor' . DS . 'Acme' . DS. 'API-1.0' . DS . 'foo',
APP . 'Vendor' . DS . 'Acme' . DS. 'API-1.0' . DS . 'bar',
)
)
);
debug(App::objects('Vendor'));
...产生这个输出:
array(
(int) 0 => 'Autoload',
(int) 1 => 'ConstantsBase',
(int) 2 => 'Foo',
(int) 3 => 'Bar',
)
但是,我不能做这样的事情:
App::uses('Foo', 'Vendor');
new Foo();
...触发器:
Error: Class 'Foo' not found
CakePHP如何知道库类但不加载它们?
答案 0 :(得分:0)
显然,目录路径需要有一个尾部斜杠:
// Incorrect
APP . 'Vendor' . DS . 'Acme' . DS. 'API-1.0' . DS . 'base',
// Correct
APP . 'Vendor' . DS . 'Acme' . DS. 'API-1.0' . DS . 'base' . DS,
这只是强制性的,虽然它的遗漏似乎没有触发任何错误信息。