CakePHPは世界的に使用されているPHPのフレームワークです。PHPはWeb開発に特化したプログラミング言語で、何度かアップデートを重ねていくうちに通信周りの機能が強化されました。
初めの頃はJavascriptと同様でHTMLのページに動的スクリプト処理を入れる機能しか備わっていませんでしたが、今ではWebページをリアルタイムで更新してくれるのでページの情報が更新されるたびに自動的にリロードを行います。
PHPの構文は簡単なこともあって初心者でも習得しやすい言語ですが、自由度が高く構成管理が難しいというデメリットがあります。そのデメリットを解消してくれるのがCakePHPです。
CakePHPはケーキを焼くように簡単なプログラミングをモットーとしており、サーバー設定等が必要ありません。また、フレームワークは海外で開発されることが多いので日本語訳が少ないですが、CakePHPは日本語対応しているサイトが多くあるので学習のしやすいメリットがあります。
CakePHPの機能について具体的に紹介します。
- MVCアーキテクチャ
MVCアーキテクチャはModel、View、Controllerに分けることでユーザーがWebサイトを操作した時、開発しやすい構造のプログラミングを行うことができます。例えばユーザーがキーボードとマウスを使ってWebサイトを操作するとControllerに命令が出されます。そこからControllerはModelに指示し、データを操作することで必要な情報を取り出した後、Viewとしてユーザーの画面に映し出すことでスムーズなやり取りが可能です。
CakePHPで開発する時は最初からModel、View、Controllerが独立している為、プログラマ毎に担当を分け、独任性を無くすことができます。特に大規模開発ではモジュールごとに担当を分けやすいのでプロジェクトの管理しやすいメリットがあります。
- 自動生成機能
PHPはAIのプログラミングとして使われることが多く、機械学習に向いたプログラミング言語です。その特性を利用し、CakePHPではbake機能があります。bake機能はMVCアーキテクチャに関わるファイルを自動生成する機能です。
いくつかの質問に答えることでMVCアーキテクチャの基礎部分をプログラミングせずに自動生成します。また、ボタンやテキストフォーム等の自動生成など、複雑なプログラミング箇所以外は初心者でも簡単に実装できるような機能が揃っています。
- CakePHP専用掲示板
CakePHPの公式サイトにはCakePHP専用掲示板があります。この掲示板は様々な国から酸化したコミュニティでなりたっており、情報交換が頻繁に行われています。CakePHPでわからないことがあったら、掲示板から検索することで問題点を解決できるので便利です。
また、PHPやCakePHPのアップデートが行われた際もメリットやデメリットがすぐに把握できます。
- O/Rマッピング
データを取り出す際、元々設置しているオブジェクトを組み直してからSQL操作しなければいけません。その為、データベースを操作する度に煩雑な処理が入るのでプログラムが把握しにくい、処理に時間が掛かるなどのデメリットがあります。
しかし、CakePHPにはO/Rマッピング機能が付いているので、オブジェクトとデータを常に紐づけることが可能です。データベースを操作しなくてもオブジェクトと紐づいているので、オブジェクトを組み替えるだけで簡単にデータ操作が可能です。
ただし、O/RマッピングはSQLを全く使わないということではありません。元となるデータベースのメンテナンスが必要です。
- Scaffolding
Scaffoldingはデータベースの追加、削除、変更などのコードを自動生成する機能です。未だに改良がされており、完璧なコードを生成するわけではありません。使用する時は足場となる大枠を生成しているという認識を持つようにしましょう。