2012-02-03
CakePHP2用の自動フォルダ探索プラグイン
CakePHP1では、ControllerやModel以下のphpファイルを階層化するために、その中にフォルダを作って入れても動くのですが、CakePHP2からは自動探索しなくなりました。
例えば、下記のように複数フォルダに分けてファイル管理する場合、
app/Contoroller/Admin/AdminController.php app/Contoroller/User/UserController.php
CakePHP2では下記のように、bootstrap.phpでApp::build()を使って全てのフォルダを指定しないといけません。
App::build(array(
'Controller' => array(
'/app/Contoroller/Admin/',
'/app/Contoroller/User/'
)
));
これってフォルダが増えるたびに定義を増やしていかないといけないので、この処理を自動的に行うプラグインを開発しました。現在はControllerとModelフォルダ以下を探索します。
AutoAppBuild for CakePHP 2.x
https://github.com/ichikaway/AutoAppBuild
インストール方法
gitからプラグインをダウンロードして、下記のように配置します。
app/Plugin/AutoAppBuild
次に、app/Config/bootstrap.phpに下記を記述します。
CakePlugin::load(array('AutoAppBuild' => array('bootstrap' => true)));
これだけです。
本番環境では自動探索じゃなくて、App::build()で定義しておきたいのであれば、
AutoAppBuild::dump();
を実行すると、コピー&ペースト用のApp::build()パスをダンプ出力します。
CakePHP2からプラグインのbootstrapとroutesが読み込める
app/Config/bootstrap.phpで下記のようにすると読み込めます。
CakePlugin::loadAll(array(
'FooPlugin' => array('bootstrap' => true, 'routes' => true),
));
詳細は下記。
