初心者のための CakePHP チュートリアル: CakePHP フレームワークとは何ですか?
⚡ スマートサマリー
CakePHPチュートリアルでは、MVCベースのWebアプリケーションを迅速に開発するためのオープンソースPHPフレームワークであるCakePHPについて解説します。このチュートリアルでは、CakePHPとは何か、チームがCakePHPを選ぶ理由、インストール方法、フォルダ構造と設定、命名規則、そしてModel-View-ControllerパターンがCakePHPアプリケーションをどのように駆動するのかを説明します。

CakePHP とは何ですか?
CakePHP CakePHPは、PHPで構築されたWebアプリケーションの迅速な開発と保守のためのオープンソースフレームワークです。MVCアーキテクチャの概念に基づいており、少ないコードで簡単かつシンプルにPHP Webアプリケーションを構築できます。また、CakePHPはビジネスロジックをデータ層とプレゼンテーション層から分離するのに役立ちます。
CakePHP フレームワークを使用する理由
CakePHPフレームワークを使用する主なメリットは以下のとおりです。
- CakePHPは、間違いなく最も高速なWeb開発プラットフォームの一つです。
- CakePHP を使用すると、開発者はデータベースと SQL クエリの制御を強化できます。
- これにより、ユーザーは環境の柔軟性を損なうことなく、堅牢なWebアプリケーションを迅速に開発できるようになります。
- へのサポート PostgreSQL, SQLite, MySQL、および ADODB 用の PEAR-DB、データベース abstracttracライブラリ。
- 検索エンジンに優しい URLs.
- 入力検証やデータサニタイズツールなどの機能を提供し、アプリのセキュリティを強化します。
- 使い慣れたPHP構文を使ったテンプレート作成。
CakePHPのインストール方法
CakePHPをインストールする推奨方法は、PHP依存関係マネージャーであるComposerを使用することです。Composerをインストールしたら、以下のコマンドを実行して新しいプロジェクトの骨組みを作成します。
composer create-project --prefer-dist cakephp/app:~5.0 my_app
このコマンドは、CakePHPとその依存関係をmy_appという名前のフォルダにダウンロードします。その後、組み込みサーバーを起動できます。 bin/cake server ブラウザで http://localhost:8765 を開いてください。なお、CakePHP 5 は PHP 8.1 以降が必要です。
CakePHP の歴史
今回のCakePHPチュートリアルでは、CakePHPフレームワークの歴史について解説します。
| 年 | マイルストーン |
|---|---|
| 2005 | CakePHP は、2005 年 4 月 15 日に Michal Tatarynowicz によって開発されました。 |
| 2005 | CakePHPはこれをMITライセンスの下で公開し、コミュニティ開発者に開放した。 |
| 2005 | ラリー E マスターズが主任開発者として引き継ぎました。 |
| 2006 | バージョン1.0がリリースされました。 |
| 2011 | バージョン2がリリースされました。 |
| 2014 | バージョン3がリリースされた。これは以前のバージョンを全面的に書き直したものである。 |
| 2016 | CakePHPのバージョン3.3が、多くの高度な機能を搭載してリリースされました。 |
| 2019 | バージョン4.0がリリースされ、フレームワークが最新化されました。 |
| 2023 | CakePHP 5.0がリリースされましたが、PHP 8.1以降が必要です。2026年現在のリリースはCakePHP 5.3.xです。 |
CakePHPの特徴
CakePHP の重要な機能を次に示します。
- 活発でフレンドリーなコミュニティ
- MVCアーキテクチャ
- 組み込みの検証
- どのウェブサイトディレクトリからでも動作し、Apacheの設定は一部または全く必要ありません。
- テンプレートエンジン
- キャッシング操作
- 簡単なCRUDデータベース操作
- メール、Cookie、セキュリティ、セッション、リクエストなどのコンポーネントの処理
- ヘルパーを表示する Javaスクリプト, アヤックスHTMLフォームなど
CakePHP - フォルダー構造
この CakePHP フレームワーク チュートリアルでは、CakePHP フォルダー構造について学びます。
以下は CakePHP のフォルダー構造です。
| フォルダ | 詳細説明 |
|---|---|
| テスト | このフォルダーには、アプリケーションのテスト ケースが含まれています。 |
| 温度 | tmpフォルダは一時データを保存します。 |
| ベンダー | このフォルダには、CakePHPやその他のアプリケーション依存関係がインストールされます。 |
| Webroot | ウェブルートには、一般公開したいすべてのファイルが保存されます。 |
| ビン | bin フォルダーには、Cake コンソールの実行可能ファイルが保存されます。 |
| ログ | これにはログファイルが含まれており、ログの設定によって異なります。 |
| 設定 | configフォルダには、CakePHPが使用する設定ファイルが格納されます。 |
| プラグイン | ここは、アプリケーションが使用するプラグインが保存される場所です。 |
| Src | ここには、コントローラ、エンティティ、ビヘイビアなど、アプリケーションのコードが含まれています。Locale には国際化のための文字列ファイルが保存され、Model にはアプリケーションのテーブル、エンティティ、ビヘイビアが含まれます。 |
CakePHPの構成
CakePHP にはデフォルトで XNUMX つの設定ファイルが付属しています。 要件に応じて変更することもできます。 この目的のために「config」というフォルダーが用意されています。
| 変数名 | 詳細説明 |
|---|---|
| デバッグ | CakePHP デバッグ出力を変更できます。 |
| App.名前空間 | アプリの授業を見つけるのに役立ちます。 |
| App.baseURL | CakePHP で Apache の mod_rewrite を使用したくない場合は、このキーワードのコメントを解除します。 |
| アプリのエンコーディング | アプリケーションで使用するエンコーディングを定義できます。 |
| アプリベース | これはアプリが格納されるベースディレクトリです。false の場合、自動的に検出されます。 |
| App.fullBaseUrl | 完全修飾ドメイン名。 |
| アプリ.webroot | これはウェブルートディレクトリです。 |
| App.wwwRoot | Webルートへのファイル パス。 |
| App.jsBaseUrl | パブリック js ディレクトリへのパス。 |
| アプリのパス | 非クラスベースのリソースのパスを構成します。 |
| App.cssBaseUrl | これは、ウェブルートの下にある公開CSSディレクトリへのウェブパスです。 |
| セキュリティ.ソルト | ハッシュ化に使用されるランダムな文字列です。 |
| アセット.タイムスタンプ | この変数は、適切なヘルパー関数を使用するとタイムスタンプを付加します。 |
Cake-PHP 命名規則
CakePHPは、設定よりも規約を重視する考え方に基づいています。命名規則によって、Webアプリケーションの動作を整理することができます。この方式では、ファイル名に複数の単語が含まれる場合は「_」で区切り、クラス名にはキャメルケースを使用します。
MVCの各部分は、以下の構文に従う必要があります。
| ファイル名 | クラス名 | 基本クラス名 | 所在地 | |
|---|---|---|---|---|
| モデル | テーブル名の単数形に.php拡張子を付けたもの。例:order.php | ファイル名はキャメルケースで表記します。例: Order | アプリモデル | /アプリ/モデル |
| コントローラー | テーブル名_コントローラーに.php拡張子を付けたもの。例:orders_controller.php | テーブル名にコントローラーを付加したもの。例:OrdersController | アプリコントローラー | /app/コントローラー |
| 表示 | コントローラー内のアクション名に.ctp拡張子を付けたもの(例:add.ctp) | クラスは使用されていません。ビューにはHTMLタグとPHPが含まれています。 | /app/views/コントローラー名 |
データベースの構成
CakePHPでは、データベースを次のように構成できます。 config / app.php ファイル。このファイルには、指定されたパラメータを含むデフォルトの接続が提供されますが、必要に応じて変更できます。
重要なパラメータを以下に示します。
| 詳細説明 | |
|---|---|
| ポート (オプション) | サーバーへの接続に使用される TCP ポートまたは Unix ソケット。 |
| タイムゾーン | 設定するサーバーのタイムゾーン。 |
| スキーマ | これは、使用できるスキーマを指定するのに役立ちます。 |
| unix_socket | ドライバがUnixソケットファイルを介して接続するために使用します。 |
| ssl_key | これはSSLキーファイルへのファイルパスです。 |
| ssl_cert | これはSSL証明書ファイルへのファイルパスです。 |
| ssl_ca | これはSSL認証局へのファイルパスです。 |
| 歳入録 | この用語は、クエリ ログの実行に役立ちます。 |
| その中に | 接続が作成されるたびにデータベース サーバーに送信されるクエリのリスト。 |
| 引用識別子 | 予約語や特殊文字を使用する場合は、trueに設定してください。 |
MVC は CakePHP でどのように動作しますか?
このCakePHPフレームワークチュートリアルでは、CakePHPにおけるMVCの仕組みについて学びます。
これは、Webアプリケーションの主要なメカニズムを構築するための動的な手法です。モデル、ビュー、コントローラーはそれぞれ独立しています。

CakePHPは操作を3つの部分に分割します。
- モデル: すべてのデータベース対話に使用されます。
- ビュー: すべての出力と表示に使用されます。
- コントローラー:アプリケーションの動作フローを制御するために使用されます。
CakePHPでMVCアーキテクチャを使用する手順は以下のとおりです。
ステップ1) クライアントまたはユーザーはビューと対話する。
ステップ2) このビューは、特定のイベントが発生したことをコントローラーに通知します。
ステップ3) コントローラーはモデルに対してデータベースリクエストを送信し、モデルを更新します。
ステップ4) モデルは、変更があったことをビューに通知します。
ステップ5) ビューはモデルデータを受信し、受信したデータに基づいて自身を更新します。
MVC を使用する理由
- CakePHP MVCは、ビジネスロジックをプレゼンテーションやデータ取得から分離するのに役立ちます。
- サイトは論理セクションに分割されており、特定のコントローラーで管理できます。
- アプリケーションのテストやデバッグを行う際、開発者はコードの詳細をすべて知らなくても、エラーを特定して修正することができます。
CakePHP フレームワークを使用するデメリット
- CakePHPのドキュメントサポートは、本来あるべきほど包括的ではない。
- CakePHPを使用するには、開発者は、ファンシーなコンテンツを作成するためのデフォルトルートを更新する必要があります。 URLこれは、他のPHPフレームワークと比較すると、より多くの作業が必要となる。
- CakePHPは、他のフレームワークと比較して、一方向ルーティングを採用しています。
- PHPを学ぶ フレームワークは初心者にとって必ずしも簡単ではない。
- 一方通行のルーティングは、Ruby on Railsのようなフレームワークと比較した場合のもう一つの欠点です。
