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

}

これが私が得たエラーです:

致命的なエラー: クラス 'Facebook' が /home/users/example.com/www/app/Controller/AppController.php の 42 行目に見つかりません

これはどのように可能ですか?なにが問題ですか?

ありがとう!

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 に変更しました。

その後、php facebook lib を実行するために必要な LIB CURL でエラーが発生しました。だから、私はそれをインストールしました:

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 に答える