0

我有:

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();   
    }   

}

这是我得到的错误:

致命错误:在第 42 行的 /home/users/example.com/www/app/Controller/AppController.php 中找不到类“Facebook”

这怎么可能?怎么了?

谢谢!

4

2 回答 2

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

于 2012-05-27T09:14:46.510 回答
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 恢复为原来的,错误就解决了。

最好的祝福

于 2012-11-20T17:55:24.640 回答