なんでも、Model・View・Controllerのパスは複数指定することができるそうです。
http://www.mono-space.net/blog/php/e070409_mvc_path.htm(Model,View,Controllerを共有する)
/app/config/bootstrap.phpに記述するのですが、なんとbootstrap.phpの一番下に以下のような記述がありました(常識??)
/**
* The settings below can be used to set additional paths to models, views and controllers.(下のように設定を書いたらmodel・view・controllerに追加のパスを設定できるよ)
*
* $modelPaths = array('full path to models', 'second full path to models', 'etc...');
* $viewPaths = array('this path to views', 'second full path to views', 'etc...');
* $controllerPaths = array('this path to controllers', 'second full path to controllers', 'etc...');
*
*/
上記サイトでは、アプリケーション間の共有利用という点を書いていましたが、中・大規模なアプリケーションともなれば、テーブルの数に比例してModelが増え、ControllerやViewも階層的に管理したい場合が出てくるかと思います。
そういった場合に以下のようにbootstrap.phpに記述することで階層的にModelファイル等を管理できるのではないでしょうか。
APP.'models/', //まずはデフォルトのmodelのPath
APP.'models/blog/', //ブログ関係のモデルはここに
APP.'models/mail/', //メール関係のモデルはここに
);
または、1つのアプリケーション内で一元管理したいけどアプリ内アプリを個々に管理したい場合は
APP.'models/', //まずはデフォルトのmodelのPath
APP.'custom/blog/models', //ブログ関係のModel
APP.'custom/blog/controllers', //ブログ関係のController
APP.'custom/blog/views', //ブログ関係のView
);
(ただ、場合によってはアプリケーションを分離した方がいい場合が往々に考えられます)
上記コードは当然Controller・Viewにも対応しています(controllerPaths・viewPathsの定義によって)
お恥ずかしながら、今日までこんな便利な設定を知りませんでした(bootstrap.phpに書けばいいだなんて・・・)。