CakePHPはMVCかつフルスタックのフレームワーク

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

CakePHPは、MVC(Model View Controller:モデル・ビュー・コントローラ)でフルスタックなフレームワークであるそうです。
MVCでは、DB操作などのデータ処理ロジック(Model)と表示(View)を切り離し、Controllerは入力・出力に応答する役割を担う。
これにより、デザインとロジックが分離できるだけでなく、複数のプログラマーによる開発も容易になるとのこと。Controllerの働きにより、Smartyなどのテンプレートエンジンよりももう一歩進んだものとなる。

スポンサーリンク

フルスタックとは、開発環境がAll in Oneで提供されていて、DB、UI、セキュリティなどを別々に分離して開発する必要がないという意味です。

CakePHPの場合、DBのテーブル名、コントローラー名、プログラムファイル名、クラス名が、全て1対1で対応しています。
一つのプログラムファイルの中でif-else文で条件分岐するのではなく、ファイル一つにつき一つの処理を実行するという形になっている。

if ($_GET['action'] == 'insert') {
	処理1;
} elseif ($_GET['action'] == 'update') {
	処理2;
} elseif ($_GET['action'] == 'delete') {
	処理3;
}

と、一つのファイルの中で、条件分岐させる書き方ではなくて・・・
以下のように、URLのクエリパラメータから実行するファイルを一つ決定して、一つの処理を実行する。
条件分岐を、ファイルを別々に作成することで行うようなイメージです。

$target_file = 'controllers/' . $_GET['action'] . '.php';
include($target_file);

実際には、CakePHPでは、コントローラー(実行ファイル名)に続いて、メソッド名とメソッドに渡す引数が続きます。

http://hogehoge.com/cakephp/hoges/hogemethod/3

というURLであれば、hoges_controller.phpというプログラムファイル(Controller)の中の、hogemethod()というメソッドに引数3を渡して実行する、という意味。
Modelのファイル名は「hoge.php」、Viewsのフォルダ名が「hoges/○○.html」となります。(○○は、Controllerで実行されるメソッドに対応して、一つずつView用のテンプレートファイルが用意される。)

以下、CakePHPにおける、DBテーブル名、コントローラー名、プログラムファイル名、クラス名の1対1対応の命名規則。複数形と単数形に注意が必要です。

DBテーブル名: order_records 
としてDBのテーブル、カラムを設定してコマンドプロンプトからbakeしてやると、以下のような設定でURLパスやスクリプトファイルが自動生成されます。

URLパス: ”CakePHPインストールパス/order_records/”
viewsフォルダ名: ”order_records/”

  Controller Model
プログラムファイル名 order_records_controller.php order_record.php
クラス名 OrderRecordsController OrderRecord

DBにテーブルを追加してbakeするたびに、このように1対1対応でプログラムファイルとクラスが新たに生成されます。

スポンサーリンク
 
スポンサーリンク