CakePHP

**CakePHP**（ケイクピーエイチピー）とは、PHPで書かれたオープンソースのWebアプリケーションフレームワークである。先行するRuby on Railsの概念の多くを取り入れており、Rails流の高速開発とPHPの機動性を兼ね備えたフレームワークと言われている。MITライセンスの元でフリーで配布されている。

## 歴史
2005年3月、Cakeという名前の小さなフレームワークが公開されたことでCakePHPプロジェクトは始まった。2005年12月にはcakeソフトウェア財団が設立され、多くのサブプロジェクトを生みながら、利用者の拡大を続けている。特に日本においては、2009年以降、2017年までもっとも人気のあるPHPフレームワークとなっており、2018年からは世界的な潮流を受けてLaravelに人気を奪われるも根強い人気を得ている。なお、2020年1月現在も日本での稼働WEBサイト数はLaravelを上回っており、世界で最も多いという調査結果がある（日本以下、アメリカ、ブラジルと続く）。

## 特徴
* MVCアーキテクチャ。
* 高い後方互換性。
** 下位バージョンからのアップグレードをサポートする公式移行ガイド及びUpgrade shell。
* 統合された柔軟なO/Rマッピング。
** MySQL、PostgreSQL、SQLite、Microsoft SQL Serverを標準サポート。
* フォームバリデーション機能。
* セキュリティ対策機能（XSS対策・CSRF対策・フォーム改竄検知）。
* カスタムURLを実現するためのリクエストディスパッチャー。
* PEAR等の外部ライブラリに依存しておらず、単体での利用が可能。
* 必要なライブラリをその都度利用できるインポート機能。
* プラグインによる機能拡張。
* 柔軟なビュー機構。
** テンプレートの継承や拡張。
** ページ単位及び部品単位のキャッシュ。
* Composerへの標準対応（バージョン3以降）。

## リリース
リリースバージョンは、メジャーバージョン・マイナーバージョン・アップデートバージョンで構成されている。
; メジャーバージョン
: アーキテクチャーの変更等を管理するバージョン。
:* 例）CakePHP 1 → 2（PHP4のサポートがなくなり、PHP5専用へ）。CakePHP 2 → 3（PHP5.4以降専用・名前空間の使用・モデルが配列でなくオブジェクトを返す）
; マイナーバージョン
: 新機能の追加等を管理するバージョン。基本的に新機能を使用しなければ、同じメジャーバージョン内では互換性を持つとしている。
:* 例）CakePHP 2.0 → 2.1（ビュークラスの機能拡張・コールバックに変わるイベントマネージャーの導入）
; アップデートバージョン
: バグ修正や性能改善を管理するバージョン。

### CakePHP 1.2
* リリース日 : 
* 対応PHPバージョン : PHP4.3.2以降及びPHP5以降
* CakePHP 1.1 からの変更点
** テストが全クラスをカバーし、コードカバレッジもより網羅
** コマンドラインからアプリケーションを実行するシェル機構の導入
** i18n（国際化）とl10n（地域化）をサポート
** ユニコードの文字列をサポート
** CSRF対策の導入
** モデル内のメソッドを再利用可能にするビヘイビア機能の導入
** バリデーションの強化(複数バリデーションのサポートと組み込みバリデーションルールの増加)
** DB2、Oracle Database のサポート
** APC/XCache/Memcache のサポート
** より詳細なエラー表示（開発時のみ、バックトレースやビュー変数をエラーとともに表示）
** ページ分割やソートを可能にするPagination機能の追加
** Htmlヘルパーの肥大化解消のため、フォーム関連をFormヘルパーに移行
** アプリケーション全体の設定をConfigureクラスによる定義へと変更
** 外部ファイルの読み込みをAppクラスによる読み込みへと変更
** ビューのファイル拡張子が「.thtml」から「.ctp」へと変更

### CakePHP 1.3
* リリース日 : 
* 対応PHPバージョン : PHP4.3.2以降及びPHP5以降

### CakePHP 2.0
* リリース日 : 
* 対応PHPバージョン : PHP5.2.6以上
* CakePHP 2.0.3
** PHPUnit 3.6 に対応

### CakePHP 2.1
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.2
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.3
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.4
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.5
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.6
* リリース日 : 
* 対応PHPバージョン : PHP5.2.8以上

### CakePHP 2.7
* リリース日 : 
* 対応PHPバージョン : PHP5.3.0以上

### CakePHP 3.0
* リリース日 : 
* 対応PHPバージョン : PHP5.4.16以上
** 新しいORMの導入
** View Cellsクラスの導入

### CakePHP 3.1
* リリース日 : 
* 対応PHPバージョン : PHP5.4.16以上

### CakePHP 3.2
* リリース日 : 
* 対応PHPバージョン : PHP5.5.9以上

### CakePHP 3.3
* リリース日 : 
* 対応PHPバージョン : PHP5.5.9以上

### CakePHP 3.4
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上

### CakePHP 3.5
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上

### CakePHP 3.6
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上

### CakePHP 3.7
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上

### CakePHP 3.8
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上

### CakePHP 3.9
* リリース日 : 
* 対応PHPバージョン : PHP5.6.0以上
*2022年12月15日までセキュリティ修正をリリース。

### CakePHP 4.0
* リリース日 : 
* 対応PHPバージョン : PHP7.2.0以上

### CakePHP 4.1
* リリース日 : 
* 対応PHPバージョン : PHP7.2.0以上

### CakePHP 4.2
* リリース日 : 
* 対応PHPバージョン : PHP7.2.0以上
** PHP8の完全サポート

### CakePHP 4.3
* リリース日 : 
* 対応PHPバージョン : PHP7.2.0以上

### CakePHP 4.4
* リリース日 : 
* 対応PHPバージョン : PHP7.4.0以上

## 発音・読み方
日本国内では英語での発音に近い「ケイクピーエイチピー」と読まれることが多い。

## 脚注


## 外部リンク
*CakePHP - Build fast, grow solid | PHPフレームワーク 日本語公式サイト
*API 
*日本語マニュアル（4.x系）
*日本語マニュアル（3.x系）
*日本語マニュアル（2.x系）
*日本語マニュアル（1.3系）