Posted on

Model,View,Controllerのディレクトリ整理方法

CakePHPでmodels,views,controllersの中がファイルで一杯になったので整理の方法をメモ。

/**
* The settings below can be used to set additional paths to models, views and controllers.
* This is related to Ticket #470 (https://trac.cakephp.org/ticket/470)
*
* $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...');
*
*/

app/config/bootstrap.phpのコメントにも書いてますが、

$contlloerPaths = array(
    CONTROLLERS.'folder_name'. DS,
);
$modelPaths = array(
    MODELS.'folder_name'. DS,
);
$viewPaths = array(
    VIEWS.'folder_name'. DS,
);

とbootstrap.phpに定義しておくと上で定義したフォルダの先までファイルを探しにいってくれます。
(内部でApp::importが探しにいってるみたい。)

注意するのは、
フォルダ階層が違うので同じ名前のファイル名が作れるけど、
先に見つけたファイルが読み込まれ、もう一方の同じ名前のファイルは読み込まれませんでした。(エラーにはならず・・・)
後、
設定したらcacheは前のパスが残ってるので消しときましょう。