3.5.2.2 $components、$helpers、$uses

次によく使われるコントローラ属性は、CakePHPに現在のコントローラが、どんなヘルパー、コンポーネント、モデルを使用するのかを伝える属性です。これらの属性により、MVCの各クラスをクラス変数として(例えば、$this->ModelNameとして)利用できるようになります。

各コントローラは、デフォルトでいくつかのクラスを利用できるようになっています。ですから、コントローラにまったく設定を追加しなくてよい場合もあります。

コントローラは、主要モデルにはデフォルトでアクセスできます。RecipesControllerは、デフォルトで、Recipeモデルに$this->Recipeという仕方でアクセスでき、ProductsControllerも$this->Productという形でProductモデルを使うことができます。

Html 、 Form 、 Session ヘルパーは、デフォルトで利用することができます。これらのクラスに関する詳細は、マニュアルの後の章を参照してください。

CakePHPのコントローラに、使用する追加のMVCクラスをどのように設定するのかを見てみましょう。

<?php

class RecipesController extends AppController {
    var $name = 'Recipes';

    var $uses = array('Recipe', 'User');
    var $helpers = array('Html', 'Ajax');
    var $components = array('Session', 'Email');
}

?>   
  1. <?php
  2. class RecipesController extends AppController {
  3. var $name = 'Recipes';
  4. var $uses = array('Recipe', 'User');
  5. var $helpers = array('Html', 'Ajax');
  6. var $components = array('Session', 'Email');
  7. }
  8. ?>

これらの変数は継承した値とマージされるため、例えば Form ヘルパーや App controller で宣言したものを、もう一度宣言する必要はありません。