第8章
第8章 · 初心者向け

Component

同じ受付処理を、何度もコピペしないための部品です。

1. Componentとは

Component=Controller用の再利用パーツ

2. Componentを使う理由

たとえ

どの窓口でも「会員証チェック」が必要なら、チェック係を1人雇って使い回します。それがComponentです。

3. ControllerからComponentを利用

public function initialize(): void
{
    parent::initialize();
    $this->loadComponent('Flash');
    $this->loadComponent('AuthCheck');
}

4. 共通処理をComponent化

// ログイン必須チェックの例(イメージ)
public function requireLogin(): void
{
    $controller = $this->getController();
    $session = $controller->getRequest()->getSession();
    if (!$session->check('Auth.User.id')) {
        $controller->Flash->error('ログインしてください');
        $controller->redirect(['controller' => 'Users', 'action' => 'login']);
    }
}
始め方

まずControllerに直接書いて動かす → 同じ処理が2回出たらComponentにする、で十分です。

第8章 やってみよう

EXERCISE
  1. ログインチェックをComponentに切り出す設計を紙に書く
  2. 2つのControllerから使う場面を想像する