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対応でプログラムファイルとクラスが新たに生成されます。
- - 関連記事 -
- strpos() や strcmp() など間違えやすいif文での判定
- htmlentities() と htmlspecialchars() の違い
- PHPの内部エンコードと出力文字コード、スクリプト文字コード
- PHPのデバッグ・xdebugをxamppで有効にする
- CakePHPの日本語対応、国際化
- コマンドラインでPHPが起動できない
- 直接ファイルが実行されたときだけ起動するスクリプト
- ディレクトリを探索してリンク一覧表示
- PHPとRubyのコードの書き方を比較
- コメントアウトの使い分けと、/*** ~ ***/とか// — を単語登録
- PHPでvar_dump()を使ったお手軽デバッグコード
- プログラミング練習問題をPHPで解いてみた
- PHP5のクラス定義とオブジェクトのおさらい
- フレームワークCakePHPにチャレンジ
- sort・asort・ksort 配列を並べ替える関数
- foreach構文
- PHPの配列
- strcmp関数
- strcasecmp関数
- PHPヒアドキュメント