2

我正在尝试从我的应用程序外部包含一个杂项库类(它被不同的应用程序使用)。

我的应用程序位于:

/var/www/websites/my_website/app/

该课程位于:

/var/www/websites/libs/CakePHP/MyClass.php

在我的引导程序中,我正在努力弄清楚如何添加从该目录加载类的路径:

App::build(array('Lib' => array('/var/www/websites/lib/')));

App::uses('MyClass', 'CakePHP');

$myClass = new MyClass();
4

1 回答 1

3

加载不应在您的引导程序中完成,而应在您AppControllerbeforeFilter方法中完成。

此外,还有一个非 Cake 库的保留位置,即app/Vendor目录。您可以将所有课程放在那里,然后通过以下方式轻松加载团队:

App::uses('MyClass', 'Vendor');

如果确实需要在替代路径中,则需要指定并调用完整路径。并确保使用相同的名称。现在,您正在指定Lib,但调用CakePHP时好像它build本身就是 a (它不是)。这行不通。它应该看起来像这样:

App::build(array('Lib' => array('/var/www/websites/lib')));
App::uses('MyClass', 'Lib/CakePHP'); // Define the subdirectory here

另请查看有关加载供应商文件的文档,其中有很多示例。

于 2013-01-10T21:00:39.750 回答