我有:
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在线 42
这怎么可能?有什么问题?
谢谢!
答案 0 :(得分:6)
您必须使用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
答案 1 :(得分:0)
这个问题发生在我身上..
我做了一些测试,确实知道发生了什么。
首先,我将facebook.php重命名为Facebook.php。这不是必需的。这取决于你的cakephp版本。
所以,在Cake / Core / App.php中,我评论了第738行(return(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恢复为原始版本,错误已解决。
祝你好运