在CakePhp中导入供应商类时出错

在CakePhp中导入供应商类时出错,php,cakephp,Php,Cakephp,我有: 在App/Controller/AppController.php中,我使用了: App/Vendor/Facebook App/Vendor/Facebook/facebook.php 那么AppController类是: App::uses('facebook', 'Vendor/Facebook'); 以下是我得到的错误: 致命错误:在中找不到类“Facebook” /home/users/example.com/www/app/Controller/AppController

我有:

在App/Controller/AppController.php中,我使用了:

App/Vendor/Facebook
App/Vendor/Facebook/facebook.php
那么AppController类是:

App::uses('facebook', 'Vendor/Facebook');
以下是我得到的错误:

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

这怎么可能?怎么了


谢谢

您必须使用
App::import()
导入文件,因为它不符合CakePHP约定。下面的代码段应该可以做到这一点:

class AppController extends Controller {

    public $fb;

    public function beforeFilter() {
        $fb = new Facebook();   
    }   

}

另请参见

您必须使用
App::import()
导入文件,因为它不遵循CakePHP约定。下面的代码段应该可以做到这一点:

class AppController extends Controller {

    public $fb;

    public function beforeFilter() {
        $fb = new Facebook();   
    }   

}

另请参见我遇到的这个问题

我做了一些测试,但我不知道发生了什么

首先,我将facebook.php重命名为facebook.php。这其实是没有必要的。这取决于您的cakephp版本

因此,在Cake/Core/App.php中,我对第738行(return(bool)include_once$mapped;)进行了注释,并更改为require_once$mapped

后来,我在LIB CURL中遇到了一个错误,这是运行php facebook库所必需的。所以,我安装了它:

App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'facebook.php'));
这一次,错误更改为:

sudo aptitude install php5-curl
sudo /etc/init.d/apache2 restart
最后,我将Cake/Core/App.php恢复为原始版本,错误得到了解决


最诚挚的问候

我遇到了这个问题

我做了一些测试,但我不知道发生了什么

首先,我将facebook.php重命名为facebook.php。这其实是没有必要的。这取决于您的cakephp版本

因此,在Cake/Core/App.php中,我对第738行(return(bool)include_once$mapped;)进行了注释,并更改为require_once$mapped

后来,我在LIB CURL中遇到了一个错误,这是运行php facebook库所必需的。所以,我安装了它:

App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'facebook.php'));
这一次,错误更改为:

sudo aptitude install php5-curl
sudo /etc/init.d/apache2 restart
最后,我将Cake/Core/App.php恢复为原始版本,错误得到了解决


致以最诚挚的问候

您确定AppController吗?您可能需要另一个将扩展AppController的控制器,如类UsersController扩展AppController{}您确定要扩展AppController吗?您可能需要另一个扩展AppController的控制器,比如这个类UsersController扩展AppController{}。似乎唯一的问题是缺少库CURL。要解决这个问题,您可能只需要执行$sudo aptitude安装php5 curl$sudo/etc/init.d/apache2 restarti似乎唯一的问题是缺少LIB curl。要解决这个问题,您可能只需要执行$sudo aptitude安装php5 curl$sudo/etc/init.d/apache2 restart