CakePHPはAppControllerで読み込んだComponent、Helperがそれを継承した子コントローラーのそのものと自動的にマージされる。
しかし継承時、親と子の間に独自で定義したコントローラーを挟んだ場合、独自コントローラー内でのComponent、Helperはマージ対象から外れてしまう。
なので、ユーザーの意図した挙動に修正するために独自コントローラー内で下記変数に少々細工を加える。
App::uses('AppBaseController', 'Controller'); class AppBaseController extends AppController { public $components = ['hogeComp']; // マージ対象の親クラスを変更する protected $_mergeParent = 'AppBaseController'; }
上記の通り、「$_mergeParent」にセットする値を変更することでマージの挙動を変更することが可能。