test

CakePHP Note

各種クラスやファイルの読み込み

UPDATE:2008.09.17

App::import()を使用すると簡単に適切なパスからクラスを読み込ませる事ができます。CakePHPのクラスの自動ロード機能が使えない場面などで使用します。クラスの自動ロード機能とは、例えばコントローラではuses属性でモデルのクラスを、helpers属性でヘルパーのクラスを読み込ませる事が出来まる機能です。

基本構文

App::import($type, $name, $parent, $search, $file, $return); 


通常、$typeと$nameのみ使用し後の引数は省略可能です。

$typeで指定できるタイプ

  • Core
  • Model
  • Controller
  • Component
  • Behavior
  • Helper
  • Vendor


コアライブラリのインポートする場合には、uses()も利用できます。

$nameで指定する名前

読み込むクラス名を指定します。タイプに従ったディレクトリからCakePHPの命名規則に従ったファイル名を持つファイル読み込みます(underscoredされたファイル名に拡張子を付けたもの)

Vendorファイルの読み込み

1.1ではvendor()という関数を使用していましたが、1.2ではApp::importを使います。

ファイルの指定(拡張子省略)

App::import('Vendor', 'sample');

underscoredされたファイル名のファイルを読み込みます。
以下の例はvendor/sample_name.phpを読み込みます。

App::import('Vendor', 'sampleName');


サブディレクトリ下のファイルの指定(拡張子省略)

App::import('Vendor', 'sub/sample');

完全ファイル名の指定

ファイル名をCakePHPの命名規則をどうりに出来ない場合は完全ファイル名で指定します。

App::import('Vendor', 'SampleName',array('file'=>'sampleName.php'));