加载第三方非CakePHP库

时间:2015-01-02 10:00:07

标签: php cakephp cakephp-2.3

我正在尝试将专有的第三方库集成到我的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如何知道库类但不加载它们?

1 个答案:

答案 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,

这只是强制性的,虽然它的遗漏似乎没有触发任何错误信息。