|
|
10分で分かるApp::import() 2009/05/22 第4回CakePHP勉強会@Tokyo 新原 雅司
■自己紹介 新原雅司(しんばら まさし) shin1x1 [Twitter/Wassr etc] Shin x blog http://www.1x1.jp/blog/
■Agenda 基本 応用 まとめ 告知
■基本
■App::import()って? PHPファイルを読み込む機能 ようはパワーアップしたrequire_once() 主にクラスファイルの読み込みに使う 1.2から登場 vendor()は廃止 uses()も減少(35 -> 23)
■App::import()の特徴 タイプとクラス名だけでok 複数クラスを一度に指定できる // フレームワークのObjectクラス App::import('Core', 'Object'); // UserController App::import('Controller', 'User'); // SetとString App::import('Core', array('Set', 'String'));
■PEARやZFなファイルは 大文字が含まれるファイルは 第3引数で相対パスを指定 // app/vendors/Openpear/Util.php // App::import('Vendor', 'Openpear_Util', array('file' => 'Openpear'.DS.'Util.php');
■サーチパス ファイルを探索するディレクトリパスリスト サーチパスの先頭からファイルを探す 環境変数PATH include_path
■AppController アプリケーションで定義してもok 定義しなくてもok => サーチパスで実現 Controllerのサーチパス app/controllers/ app/ cake/libs/controllers/
■サーチパス AppControllerの読み込み app/controllers/app_controller.phpを探す => あれば終了 app/app_controller.phpを探す => あれば終了 cake/libs/controllers/app_controller.phpを探す => あれば終了 見つからなければ、ひっそり終了
■サーチパス Dispatcherクラス [cake/dispatcher.php] cake/libs/ cake/libs/model/ cake/libs/behaviors/ cake/libs/controller/ cake/libs/controller/components cake/libs/view/ cake/libs/view/helpers/ cake/ vendors/ cake/console/libs/
■キャッシュ 見つけたファイルパスをキャッシュする デフォルトではファイルに書く 次回はキャッシュのパスを直接読み込む 結果、余計なファイル探索を回避 Debug Level に注意 1以上だとキャッシュは10秒だけ有効 パフォーマンステストをするなら 0 で
■応用
■応用1. サーチパスを追加する app/config/bootstrap.phpに書く Controllerのサーチパスに /tmp 、/path/to/hogeを追加 でもCoreは変更できない <?php $controllerPaths = array('/tmp', '/path/to/hoge'); ?>
■応用2. コアなファイルを読み替える キャッシュ App::import()はキャッシュがあれば、 キャッシュから読み込む フレームワークより先にキャッシュする app/config/bootstrap.php App::import('Core', 'Dispatcher', array('file' => '../app/dispatcher.php'));
■まとめ
■まとめ App::import()のオプションをおさえておく PEARやZFなファイルは第3引数で指定 フレームワークのファイル読み込みを理解
■[告知] 1.2版CakePHPガイドブック 6月下旬刊行予定 7/25 池袋ジュンク堂 CakePHP実践本&ガイドブックトークイベント 安藤さん、岸田さん、新原 実践本、まだまだ好調 ありがとうございますm(_ _)m
ご静聴ありがとうございました。 19
Summary: 第4回CakePHP勉強会@Tokyo
| URL: |
No comments posted yet
Comments