第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
- ログインチェックをComponentに切り出す設計を紙に書く
- 2つのControllerから使う場面を想像する