【Cakephp】共通処理について

こんにちわ、masumasuです。

梅雨の晴れ間が待ち遠しい今日この頃ですが、皆様いかがお過ごしでしょうか。

今回はCakephpでの共通処理で使われる「beforeFilter、afterFilter、beforeMashel」について書いていきます。

beforeFilter

コントローラーのアクションが実行される前に呼び出されるメソッドです。

認証や権限チェックなど、アクションの前に行いたい共通の処理を記述します。

例としては、

 public function beforeFilter(\Cake\Event\EventInterface $event)
    {
        parent::beforeFilter($event);
        // ログインが必要なアクションを指定
        $this->Auth->allow(['login', 'register']);
    }

afterFilter

コントローラーのアクションが実行された後に呼び出されるメソッドです。

アクションの後に行いたい共通の処理を記述します。通常はログ記録やデバッグ情報の出力などに使用します。

例としては、

public function afterFilter(\Cake\Event\EventInterface $event)
    {
        parent::afterFilter($event);
        // アクション後の共通処理
        // 例えば、ログの記録
        $this->log('アクションが実行されました: ' . $this->request->getParam('action'), 'debug');
    }

beforeMashel

beforeMarshal は、データがエンティティに変換される前に呼び出されるメソッドです。

モデルに記述しコントローラーで呼び出します。

フォームデータの前処理やバリデーションなどに使用します。

例としては、

 public function beforeMarshal(Event $event, ArrayObject $data, ArrayObject $options)
    {
        // データがエンティティに変換される前の共通処理
        // 例えば、名前のトリミング
        if (isset($data['name'])) {
            $data['name'] = trim($data['name']);
        }
    }

まとめ

今回は「beforeFilter、afterFilter、beforeMashel」について書きました。少しでも参考になれば幸いです。

ご覧いただきありがとうございます。