Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

コンポーネント

コントローラで使える部品。
以下を参照した。

設定が必要なコンポーネントを使う際の設定

class HogesController extends AppController
{
    public function initialize()
    {
        parent::initialize();

        $this->loadComponent('Auth', [
            'authorize' => 'Controller',
            'loginAction' => ['controller' => 'Users', 'action' => 'login']
        ]);

        $this->loadComponent('Cookie', ['expires' => '1 day']);
    }

}

Controller->beforeFilter()でconfig()を使って設定する方法もあり。
設定は$this->Auth->config('loginAction');でよみ取れる。

コンポーネントの使用

        if ($this->Post->delete($this->request->getData('Post.id')) {

要するに移譲している。

コンポーネントの実装

namespace App\Controller\Component;

use Cake\Controller\Component;

class MathComponent extends Component
{
    public function doComplexOperation($amount1, $amount2)
    {
        return $amount1 + $amount2;
    }
}

コンポーネントから他のコンポーネントを使う。

   public $components = ['Existing'];

これで$this->Existingとなってコンポーネントから色々使える。

コンポーネントからコントローラにアクセス。。orz
$controller = $this->_registry->getController();
$controller = $event->getSubject();
コールバック
  1. beforeFilter(Event $event)
  2. startup(Event $event)
  3. beforeRender(Event $event)
  4. shutdown(Event $event)
  5. beforeRedirect(Event $event, $url, Response $response)