CakePHP3 便利な使い方と逆引きリファレンス

TOP > コンポーネント

コンポーネント

主なコンポーネントの種類

CakePHP3で用意されている主なコンポーネントを記載します。

コンポーネントとコントローラのメソッドの実行順序

コンポーネントとコントローラのメソッドの実行順序は、以下のようになります。

Controllerのinitialize()

ComponentのbeforeFilter()

ControllerのbeforeFilter()

Componentのstartup()

Controllerのaction

ComponentのbeforeRender()

ControllerのbeforeRender()

Componentのshutdown()

ControllerのafterFilter()

Componentから呼び出し元のControllerのオブジェクトを取得する

Componentから呼び出し元のControllerのオブジェクトを取得するには、getController()メソッドで取得することが可能です。

$this->controller = $this->_registry->getController();

コンポーネントのロード時に引数を渡す

コンポーネントのロード時に引数を渡す場合は、第二引数に配列で指定します。
以下では、TestComponentをロードする際を例にしています。

 

呼び出し元

コンポーネントをフィールドで宣言している場合

public $components = [
    'Test' => [
        'message' => 'コンポーネントに渡す引数です。',
        'today'   => '2017-06-01'
    ],
];

loadComponentを使っている場合

$this->Test = $this->loadComponent(
    'Test',
    [
        'message' => 'コンポーネントに渡す引数です。',
        'today'   => '2017-06-01'
    ]
);

自分でインスタンス化する場合

$this->Test = new TestComponent(
    new ComponentRegistry(), 
    [
        'message' => 'コンポーネントに渡す引数です。',
        'today'   => '2017-06-01'
    ]
);

 

コンポーネント側

コンポーネント側で引数を受け取る場合は、initialize()で受け取ることができます。

    public function initialize(array $config) {
        var_dump($config);
    }

■引数の中身
array(2) { ["message"]=> string(45) "コンポーネントに渡す引数です。" ["today"]=> string(10) "2017-06-01" }

作成日:2016年07月09日
更新日:2018年01月27日


スポンサーリンク



このページの上へ


👉サイトマップ


スポンサーリンク


お問い合わせ

メール:masahiro801[at]hotmail.com ※[at]を@に置き換えてください♪
間違いを見つけましたら、教えて欲しいです。


Copyright (C) 2019 CakePHP3 便利な使い方と逆引きリファレンス