質問: cakePHPでは、new()しなくてもコントローラ内にて同名のモデルが以下のようにすぐに使えますね。 $this->モデル名 これはコントローラ内で自動的にデフォルトコンストラクタが呼ばれているためかと思いますが、 これが不要で、むしろ引数有りコンストラクタしか行わせたくない場合はどういった方法があるのでしょうか? 宜しくお願い致します。
回答: たぶんパフォーマンス面を心配されての質問だと思うのですが、CakePHP2以降であれば モデルの読み込みは遅延読み込みになっていて、実際にモデルを使用するまで オブジェクトの生成はもちろん該当ファイルの読み込みも行われていません。 それとは別に初期化処理などを行いたいなら、コントローラーにbeforeFilter()という メソッドを実装すればアクションの前に実行されます。