我有:
App/Vendor/Facebook
App/Vendor/Facebook/facebook.php
在App/Controller/AppController中.php我使用了:
App::uses('facebook', 'Vendor/Facebook');
则 AppController 类为:
class AppController extends Controller {
public $fb;
public function beforeFilter() {
$fb = new Facebook();
}
}
这是我得到的错误:
致命错误:在 中找不到类"Facebook" /home/users/example.com/www/app/Controller/AppController.php on line 42
这怎么可能?怎么了?
谢谢!
使用App::import()
来导入你的文件,因为它不遵循CakePHP约定。以下代码片段应该可以解决问题:
App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'facebook.php'));
另请参阅 http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#loading-vendor-files
我的注意。
我做了一些测试,知道发生了什么。
首先,我将facebook.php重命名为Facebook.php。这其实没有必要。这取决于您的蛋糕版本。
因此,在Cake/Core/App.php中,我注释了第738行(返回(bool)include_once $mapped;)并更改为require_once $mapped。
后来,我遇到了一个 LIB CURL 错误,这是运行 php facebook lib 所必需的。所以,我安装了它:
sudo aptitude install php5-curl
sudo /etc/init.d/apache2 restart
这一次,错误更改为:
Fatal error: Cannot redeclare class Facebook in (...)
最后,我将Cake/Core/App.php恢复到原始状态,错误得到了解决。
此致敬意