【发布时间】:2015-01-02 10:00:06
【问题描述】:
我正在尝试将专有的第三方库集成到我的 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 怎么知道库类但不加载它们?
【问题讨论】:
-
您是否在项目中使用了composer,供应商库是否也支持composer?
-
我看到
composer.json文件到处都是,但我不熟悉。 -
您是否熟悉其他包管理器,例如 bower? Composer 非常相似,并且是现在 php 世界中的常用工具。我建议你使用它,因为它带有一个标准的自动加载器,你也可以通过它管理你的依赖关系。 book.cakephp.org/2.0/en/installation/…
-
@burzum 我用过 Node 的 npm,Composer 肯定在我的待办事项列表中。但是这个特殊的库对 Composer 不友好。
标签: php cakephp cakephp-2.3