CakePHPでシステムを作った時に管理画面用や管理者用のページだけで使用する関数などをAppControllerで分けたいとい時があります。そんな思いが出てきてちょっと調べてみたら、それほど難しくなくクラス分けで実装することができました。その詳細は以下に。

 ここではAppControllerに管理者用のAdminAppControllerを作り、そこに管理者用の処理を書くとします。そうした場合は下記のようなソースをapp_controller.phpファイルに書きます。

// 通常のAppControllerの処理
class AppController extends Controller {
    // :
}

// 管理者用のAppControllerの処理
class AdminAppController extends AppController{
    // :
}

 ここで注意しておくことがAdminAppControllerで継承しているのがAppControllerであることです。

 ではこのAdminAppControllerを各コントローラーでどうやって使用するかですが、通常の

class HogeController extends AppController {
    // :
}

 ではAdminAppControllerの処理は行いません。管理者用のAdminAppControllerを通したければ

class HogeController extends AdminAppController {
    // :
}

と、AdminAppControllerを継承すれば処理してくれます。「継承」について多少なりとも知っていればごく普通のことですが、なかなかこの処理方法を思いつかない人もいることでしょう。

Pocket詳解 CakePHP辞典

価格¥200

順位1,114,848位

滝下 真玄

発行秀和システム

発売日2010/09/27

Amazonを開く

Supported by amazon Product Advertising API