CakePHP
概要

Webアプリケーションを「モデル」(Model)、「ビュー」(View)、「コントローラ」(Controller)の3層に分けて構築する「MVCアーキテクチャ」を採用する。モデルはデータベースの操作やデータ処理を、ビューは画面表示を、コントローラは両者を仲介して処理の流れを制御する。役割を分担することで、コードの保守性や再利用性が高まる。
開発効率を高める要素として「設定より規約」(CoC:Convention over Configuration)という思想を採用している。これはRuby言語によるWebアプリケーションフレームワーク「Ruby on Rails」から取り入れられた考え方で、ファイル名やクラス名、データベースのテーブル名などをあらかじめ定められた命名規則に沿わせることで、設定ファイルへの記述を最小限に抑える仕組みである。
「ArticlesController」や「ArticlesTable」「Article」といった名前から、コントローラやテーブルクラス、データを表すエンティティとしての構成が自動的に決まる。開発者が個別に細かい設定を書かなくても、規約通りに構成すればフレームワーク側が対応関係を判断してくれるため、実装に集中しやすくなる。
データベース操作にはORM(O/Rマッパー)の機能が組み込まれている。テーブルに対応するTableクラスと個々のレコードを表すEntityクラスを用い、複雑なSQL文を直接記述しなくてもクエリービルダーによる検索やテーブル間の関連付け、データの保存や更新、削除などをPHPのオブジェクトとして扱える。「ActiveRecord」と「DataMapper」の考え方を取り入れた構成となっており、入力データを検証するバリデーション機能やセキュリティ対策機能もあらかじめ備わる。
CakePHPには「Bake」と呼ばれるコマンドラインツールもあり、規約に従ったモデルやコントローラ、テンプレートなどのひな型を自動生成できる。定型的なコードの作成を省けるため、開発をより速く進められる。外部のライブラリに依存せず単体で導入できる構成も、多くの開発者に受け入れられてきた要因の一つである。
ビューのテンプレートファイルは、以前のバージョンでは拡張子「.ctp」を用いる「CTPファイル」と呼ばれていたが、現行バージョンでは標準的なPHPファイルとして扱われ、拡張子も「.php」に統一されている。ファイルの実体はHTMLに表示用のPHPコードを埋め込んだもので、通常はtemplates以下にコントローラ名とアクション名に対応する形で配置する。