①MVCアーキテクチャ
CakePHPはMVCアーキテクチャにより構築されたフレームワークで、開発のしやすいフレームワークであることが特徴的です。
MVCアーキテクチャは機能が3つに分けられており、それぞれの機能ごとに開発の担当者を分けて作業ができますので、エンジニアが作業する際に自分の得意分野に専念でき、機能の拡張や仕様変更にも対応しやすくなるのが大きなメリットです。
MVCとは、Model(モデル)、View(ビュー)、Controller(コントローラー)の3つの機能の頭文字を取ってMVCと呼ばれています。
Modelはデータベースとやり取りする機能、Viewはブラウザへの表示を担当する機能、Controllerはアプリ全体の制御を担当する機能のことを指します。
MVCで開発すると、機能ごとに分割して開発を行えますので、エンジニアが得意分野の仕事に専念でき、より質の高いアプリケーションを開発できるようになります。
②O/Rマッピング
O/Rマッピングとは、オブジェクト(要素)とデータベースを対応させる仕組みのことで、SQL(エスキューエル)など、データベースの操作に関わる複雑な作業を軽減して、簡単にデータベースを利用できるようにしてくれる仕組みを指します。
O/Rマッピングの導入を導入することによって、SQL文を直接ソースコードに埋め込む必要がなくなり、データベースをより正確に操作できるようになる事に加え、無駄なソースコードが無いことによるメンテナンス性の向上を図ることが可能です。
③bakeコマンド
bakeコマンドとは、MVCアーキテクチャによるWebアプリケーションの土台を自動生成するコマンドの事を指し、bakeコマンドを利用することで効率よくWebアプリケーションを開発できます。
bakeコマンドによって作成したアプリケーションには、CRUD機能というWebアプリケーションを操作するための必須機能が備わっています。
④フォームバリテーションチェックに
バリテーションとは、入力されたデータが適切な形式のものかどうかをチェックすることを指し、フォームバリテーションチェックを行うことで、フォームに入力されるデータの入力ミスを防げます。(郵便番号欄に名前を居れた場合にエラーを出すなど)
CakePHPでは、もともとフォームバリテーションチェックのための仕組みがありますので、バリデーションチェック機能を簡単に実装できる特徴があります。
⑤Composerに対応している
Composer(コンポーザー)とは、依存性管理ツールのことを指し、あらゆる処理や機能のプログラムをまとめたパッケージなど、依存性のあるプログラムを管理する役割を担っています。
アプリケーションを開発する際に、ソースコードのメンテナンス性から関数処理を再利用したりすることは多々あり、ライブラリを使用してシンプルでわかりやすいコードを記述するためにはComposerが必須となってきます。
⑥外部ライブラリに依存していない
外部ライブラリがなにかというと、WEBアプリケーション開発の際に使える便利な関数を再利用できるように、ゴッソリとまとめたパッケージのようなプログラムのことです。
実は外部ライブラリによっては、実行環境との相性が悪かったり、ライセンスによって使用が制限されたりしていることもありますので、外部ライブラリに依存していないCakePHPは、汎用性の高い優れたフレームワークなのです。
⑦日本語のドキュメントが豊富
CakePHPは他のプログラミング言語と比較すると、リファレンスなどの日本語のドキュメントが豊富にありますので、わからないことがあっても簡単に解決方法を探し出せます。
日本語のドキュメントが豊富なフレームワークを選択することが学習コストを下げることが出来るのでおすすめです。
⑧学習コストが低い
これはフレームワークだからというよりかは、PHP自体がわかりやすくて学習しやすいプログラミング言語だということです。
その中でも