CakePHP処理機構

CakePHPの処理機構を理解する

Pocket

ここでは、CakePHPの処理においてサーバーがhttp通信を受けてから返却するまでの全体の流れを解説します。Controller, Model, Viewに加えてComponent, Behavior, Helperなどがそれぞれどのように使われるかを理解してください。

CakePHPのフォルダ構成

CakePHPはMVCを採用しており、必要な処理を用途毎に分ける事でDRYなコードを書く事を実現しています。

Controllerの役割

Controllerはスレッドの全体管理をします。あるPathでhttp通信を受信した場合、そのPathに従ったControllerのActionが自動的に起動します。Action内でModelからデータを取得してViewにセットして下さい。

Controllerからはhttpリクエストヘッダ等にアクセスする事が可能です。デバイスによって処理を分けたり、クエリストリングを判断したりドメインを判断したりする事をメインに行います。

Controllerの使い方はこちら

Component

ComponentとはControllerの能力を全て持った共通処理群です。例えば、複数のActionにおいて同じ処理を実行したい場合に適当なComponentを作成してControllerからそれを呼び出す形で利用します。

Modelの役割

Modelは主にDatabaseのデータを扱います。DBのTable1つに対応するModelが1つになるように作成します(DBを関連を持たないModelを作成する事も可能です)。例えばusersテーブルが有った場合UserというModelがそのデータの読み書き、整形の処理を担当します。

Behavior

Behaviorは複数Model間で共通的に利用する事を目的とした処理をかき込む機能です。各Behaviorには任意の特殊な振る舞いをするfunctionを記述しておき、Modelのインスタンス化の際に指定したBehaviorの機能を取り込んでおく様にする事ができます。

Viewの役割

Viewはhtmlテンプレートです。基本的なhtmlをここで作成しておき、ダイナミックに変更される部分のみをPHP変数で代入する様にしておきます。ControllerはModelから取得したデータをViewにセットしますので、Viewではそのまま変数を代入に利用できます。

Helper

Viewはhtml特有の記述をする箇所が多く、そのいくつかはパターン化する事ができます。例えば「htmlのinputタグを作成する」といった状況は何度も発生します。そういった共通的な処理をHelperにまとめておき使いたい時に呼び出す事で共通化しておく事ができます。

CakePHPの処理機構

ここでは図を使って実際にブラウザからのhttp通信がどのように裁かれるか確認しましょう。

CakePHP処理機構
CakePHP処理機構

 ControllerのAction処理に入った後、必要に応じてModelからデータを取得、取得したデータをViewにセットしてViewでテンプレートの変数部分に情報を埋めてControllerがhttp通信を戻すという流れになります。

 

記事が役に立ったらぜひシェアをお願いします。

Pocket

One thought on “CakePHPの処理機構を理解する”

Comments are closed.