私は働いています CakePHP 3(ベータ2) 最近発売されたバージョン。 PHP SDKを使用してFacebook Loginを統合する必要があり、このバージョンでベンダーファイルをインポートすることについて明確ではありません。
CakePHP 2xでは、
App::import('Vendor', 'Facebook', array('file' => 'Facebook' . DS . 'src'. DS. 'facebook.php'));
だから、CakePHP 3xで同じものを再現する必要があります(私は作曲家を使用していません)。
これに関する参照はありますか?
composerがオプションではない場合、自分でロードする必要があります。常に非常に基本的なrequireメソッドを使用し、ベンダークラスの新しいインスタンスを自分で作成できます。参照: http://book.cakephp.org/3.0/en/core-libraries/app.html#loading-vendor-files
使用する:
//The following line should do the same like App::import() in the older version of cakePHP
require_once(ROOT . 'vendor' . DS . 'Facebook' . DS . 'src' . DS . 'facebook.php');
$facebookApi = new facebook();
Cakephp3で、新しいベンダーライブラリを追加するには、次の手順に従います。
your_project/vendor/
_の下に配置しますrequire_once(ROOT . DS . 'vendor' . DS . "my_library_folder" . DS . "my_library_base_class.php")
を使用してライブラリファイルを含めます。これにより、コードにライブラリコードファイルが含められます。_namespace App\Controller; use MyLibraryBaseClass;
_、
これにより、使用する名前空間にライブラリコードファイルがインポートされます。
ロードされたクラスのオブジェクトを作成します
$my_obj= new MyLibraryBaseClass();
ayman B.によって提供された答えは、次の理由で、私が自分で試した後、質問で期待どおりに仕事をしているようには見えません:
答えを修正するには、次のようにいくつかの手順を実行する必要があります。
1-bootstrap.phpで以下のような新しいcakephp定数を定義します:define( 'VENDOR'、ROOT。DS。 'vendor' .DS); VENDOR定数はcakephp 3.xで削除されるため自分で定義できます2-その後、次のようなベンダー定数でベンダー名、パッケージ名、クラス名を指定する必要があります:define( '_' ,;そして、$ facebookApi = new \\( );
これは質問で予想されたとおりに機能します
あなたが私に戻って取得しようとする問題がある場合、私はあなたにここで説明したように使用例を示します...
CakePHP 3.0でも同じ問題がありました。
Composerを使用して指示に従ってインストールを行います。
次に、use
ステートメントを使用して、コントローラーにプラグインを適切にロードする必要があります。このような:
Ghunti\HighchartsPHP\Highchartを使用;
これにより、プラグインを使用する問題が解決されます。
CakePhp 3.xの時点で、推奨されるコード標準は、角括弧「()」なしでrequire_onceを使用することです。
require_once(ROOT.'Folder'.DIRECTORY_SEPARATOR.'requiredfile.ph ');
になる
require_once ROOT.'Folder'.DIRECTORY_SEPARATOR.'requiredfile.ph ';
https://book.cakephp.org/3.0/en/contributing/cakephp-coding-conventions.html
それが将来誰かを助けることを願っています。