【初心者用】CakePHPを学んでいこう①(基礎知識)
そもそも、PHPとは?
Cake「PHP」とあるように、そもそもPHPとは何かをまずは確認していきましょう。PHPは、1995年に登場したWebページやWebアプリケーションを作成する際に使用するプログラム言語です。
静的なWebページを表示するHTMLとは違い、ユーザがアクセスしたタイミングによってページ内容が変化する、動的なWebページを開発することができます。
PHPを使用して作成された有名なWebサービスに、WikipediaやFacebook、ぐるなびなどがあります。
1. CakePHPとは?
CakePHP(ケイクピーエイチピー)は、PHP言語で使用されるフレームワークの一つです。
フレームワークを導入せずともPHPでの開発は可能ですが、フレームワークは開発の手助けをしてくれる機能を詰め込んでくれているツールなので、導入することでより効率的に開発を進めることができます。
PHPのフレームワークは「CakePHP」以外に、「Laravel(ララベル)」「CodeIgniter(コードイグナイター)」「FuelPHP(フューエルピーエイチピー)」などがあります。
CakePHPは2005年に登場し、初心者でも簡単に導入・開発ができるフレームワークで、日本では2009年頃から普及し始めました。
現在は「Laravel」が人気のフレームワークとして有名ですが、CakePHPは今でも根強い人気があるフレームワークです。
余談ですが名前にある「Cake」は、ロゴマークにあるようにお菓子の「ケーキ」を表しています。
公式サイトにもケーキにちなんだ説明が見られる他、CakePHPの機能に「bake」というのもあり、このようなユニークで印象に残る名称もCakePHPが広く普及していった理由の一つかもしれませんね。
2. CakePHPの特徴
2-1. MVCアーキテクチャ
Model(モデル) ・・・ データ処理やデータベースとのやり取りを担当
View(ビュー) ・・・ ブラウザへの表示を担当
Controller(コントローラー)・・・ ModelとViewの仲介を担当
それぞれが独立して機能しているため、各機能を分担して開発することが可能となっています。
①ユーザーが画面表示や入力を行う。
②ControllerがViewからのリクエストを受け取り、Modelへ処理を行うよう指示。
③Modelは処理を実行し、必要であればデータベースからデータを取得または登録などを行う。
④処理した結果をControllerへ返却する。
⑤ControllerはModelで処理した内容をViewへ反映する。
⑥結果をユーザーの画面に表示する。
2-2. bake機能
MVCそれぞれを生成するコマンドは以下の通りです。
Model ・・・ 「cake bake model [テーブル名]」
View ・・・ 「cake bake template [テーブル名]」※viewではなくtemplateのため注意!
Controller ・・・ 「cake bake controller [テーブル名]」
bakeコマンドの実行などの詳しい説明は改めて行いますが、これらのコマンドを実行することでソースコードを書かなくとも、コマンド一つで簡単にコードが作成されます。
その生成されたコードには「CRUD」機能があらかじめ用意された状態になっており、Cは「Create(生成)」Rは「Read(読み取り)」Uは「Update(更新)」Dは「Delete(削除)」を表しています。
2-3. O/Rマッピング
O/Rマッピングとは、PHP上のオブジェクトとデータベースを対応させる仕組みのことです。
このO/Rマッピングがあることで、開発者自身がマッピング作業を行う手間が省かれ、データベースの操作をSQLを書かなくとも、短い記述で簡単に参照・変更などの操作を行えます。
また、SQLを直接コードに記載しないため、視覚的にもわかりやすいソースとなり、より効率的に開発を進めることができます。
2-4. フォームバリデーション機能
例えば、必須項目にきちんと値が入力されているか、数字のみを入力する項目に数字以外の文字が入力されていないかなどのチェックを行うことができます。
よく使用されるバリデーションルールとして、以下のようなものがあります。
notEmpty ・・・未入力チェック
numeric ・・・数字のみかチェック
greaterThan・・・指定した値より大きいかをチェック
maxLength ・・・指定した最大文字数以内かをチェック
これらのルールをModelに記載し、入力チェックを行います。
例)名前「name」の項目が必須の場合
$validator->notEmpty('name', ‘名前を入力してください’);
とすれば、エラーであればView側でエラー内容を表示することができます。
上記のルール以外にも、独自のバリデーションルールを自分で作成することもできます。
2-5. Composerへの標準対応
Composerとは、依存性のあるプログラムを管理するためのツールです。
例えば、データベースから取得したデータをExcelファイルで出力したいとなった時は、「phpspreadsheet」といったプラグインをComposeを使用して導入することができます。
▼コマンドで導入したいプラグインを実行します。
例)composer require phpoffice/phpspreadsheet
このように開発で必要なライブラリや便利なパッケージを取得することで、より開発の幅を広げることができます。
2-6. 日本語ドキュメントが豊富
日本で広く普及しているフレームワークのため、公式サイト以外でも検索すればたくさんの情報を得ることができます。
またコミュニティも盛んで、CakePHPの公式サイトに記載があるようにgithubはもちろん、SlackやDiscordサーバー、YouTubeといった動画など幅広いコミュニティが用意されています。
3. CakePHPで出来ること
ここまでCakePHPの特徴を紹介してきました。
では、CakePHPを使って何が開発できるのか、どんな場面で使用されているのかについて説明します。
3-1. ECサイトの作成
実際にCakePHPを使用しているサービスに、「ココナラ」というスキルマーケットがあります。
3-2. ブログの作成
PHP全体で言えることですが、手軽に開発できるというメリットがある分、プログラムの処理速度が遅いというデメリットがあります。
小規模なブログ開発であれば問題なく処理できますが、データ処理の規模が大きいものには不向きだということに注意しておきましょう。
3-3. グループウェアの作成
社内掲示板や予約機能などを開発する際にPHPを使用する場合もあるため、フレームワークにCakePHPを使用して開発することも可能です。
4. まとめ
CakePHPについての基本的な内容や、特徴について紹介しました。
これまでPHPのフレームワークは「Codeigniter」しか使用経験がなかった身としては、CakePHPではbake機能を使ってMVCにかかわるコードを自動で作成してくれるという機能がとても便利だと感じました。
次回は実際にCakePHPをインストールし、実際に画面表示するところまでをご紹介したいと思います!
5. 次回使用環境
XAMPP:8.0.25 (PHP8.0.25)
Composer:2.5.1(インストール予定)
CakePHP:4.4.0(インストール予定)
CakePHP公式サイト:https://cakephp.org/