CakePHPではVendorを使って外部クラスやライブラリを読み込みます。CakePHP1.3まではApp::Import(‘Vendor’, ‘読み込むファイル名’)を使っていましたが、CakePHP2では書式が変更されています。
日本語情報を探してみましたが、まとまっているところが見つからなかったので備忘録代わりに方法を説明しておきます。
Vendorの使い方
読み込みたいクラスやライブラリを[/app/Vendor]に設置します。ここでは例としてqdmail_receiver.phpを取り上げてみます。
qdmail_receiver.phpを名前変更して[/app/Vendor/QdmailReceiver.php]に設置します。そして使いたいコントローラーやモデルで
App::uses(‘QdmailReceiver’,’Vendor’);
とします。App::Importとは引数が逆になっているのを注意してください。
Vendor内にディレクトリで設置した場合
CakePHP2ではVendorディレクトリを再帰的に検索しなくなりましたので、ディレクトリ名を指定する必要があります。
App::uses(‘QdmailReceiver’,’Vendor/Qdmail’);
これで読み込む準備はできましたのでインスタンスを作ってあげれば使えるようになります。
$qdmail = new QdmailReceiver(); $receiver = QdmailReceiver::start('pop', $server);
こんな感じでCakePHP2の流儀で外部ライブラリを使って開発することができます。
Pingback: (CakePHP2.x)ライブラリなどの外部ファイルの読み込み | 日々の覚書…日常のことも少しだけ