Cake/Core/App.php を読みます。 bootstrap.phpが呼び出されていた3つのファイルのうち2つ目です。
1 | require CAKE . 'basics.php'; |
Appクラスの中身を見ていきますが、全部読むのは面倒なので、uses関数にしぼります。 ※他に大事な関数があれば、後で追記します。
1 | public static function uses($className, $location) { |
なんじゃそりゃ?という感じですが、読みましょう。 メンバ変数の$_classMap配列に$classNameというキーと、場所を$locationでセットします。 ∑(゚д゚lll)ガーン、そんだけ。瞬時にロードされるかと思ったら違ってた。 App:usesしても、特に・・・なんすね。 実は、bootstrap.phpでは、App.phpをincludeした2行くらい下で、下記の記述があります。
1 | spl_autoload_register(array('App', 'load')); |
CakePHPのファイルロードはここを理解すれば、大体把握できそうですね。 ちなみに、クラスの定義以外だと、Utility内のInflectorクラスを$_classMapへ設定しています。
1 | App::uses('Inflector', 'Utility'); |
うーむ、何故ここなのだろう・・。bootstrap.phpにはApp:usesを列挙している箇所があるので、そこでも良さそうだが・・・ ひとまず、本日はApp:usesは、配列に値をセットするだけということが確認出来ました。