コンポーネント

コンポーネントの読み込みと設定

initializeメソッド内でloadComponentを使用する。

<?php
class PostsController extends AppController
{
    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('Auth', ['authorize' => 'Controller']);
        $this->loadComponent('Cookie', ['expires' => '1 day']);
    }
}
?>

あるいは、configによって実行時にコンポーネントを設定できる。

<?php
class PostsController extends AppController
{
    public function beforeFilter(Event $event)
    {
        $this->Auth->config('loginAction', ['controller' => 'Users', 'action' => 'login']);
        $this->Cookie->config('name', 'CookieMonster');
    }
}
?>

コンポーネントの使用

<?php
class PostsController extends AppController
{
    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('Flash');
    }

    public function delete()
    {
        if ($this->Post->delete($this->request->getData('Post.id')) {
            $this->Flash->success('Post deleted.'); // Flashコンポーネントの使用
            return $this->redirect(['action' => 'index']);
        }
    }
}
?>