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