初心者のための CakePHP チュートリアル: CakePHP フレームワークとは何ですか?

⚡ スマートサマリー

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

  • 🎂 CakePHPとは何か: CakePHPは、より少ないコードでPHPウェブアプリケーションを構築・保守できるオープンソースのMVCフレームワークです。
  • ⚡ 使用する理由: 迅速な開発、データベースの絶対値を提供しますtrac組み込みの検証機能と検索エンジンフレンドリー URL箱から出してすぐに使える。
  • 📦 インストール: Composerは、create-projectコマンドを1つ実行するだけでCakePHPをインストールします。現在のバージョン5では、PHP 8.1以降が必要です。
  • 📁 フォルダ構造: 保守性を高めるため、ソースコード、設定ファイル、テスト、ログ、プラグイン、および公開ウェブルートを明確なフォルダで分離します。
  • 🔤 規則: 設定よりも規約を優先するということは、モデル、コントローラー、ビューに一貫した名前を付けることで、定型コードを削減できることを意味します。
  • 🔁 MVCフロー: モデルはデータを処理し、ビューは出力を処理し、コントローラーはフローをルーティングし、ping 懸念事項が明確に分離されている。
  • 🤖 AIアシスト: AIツールはCakePHPのCRUDアプリのひな形を作成したり、古いCakePHPプロジェクトをバージョン5に移行したりするのに役立ちます。

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 の MVC アーキテクチャ
CakePHP の MVC アーキテクチャ

CakePHPは操作を3つの部分に分割します。

  • モデル: すべてのデータベース対話に使用されます。
  • ビュー: すべての出力と表示に使用されます。
  • コントローラー:アプリケーションの動作フローを制御するために使用されます。

CakePHPでMVCアーキテクチャを使用する手順は以下のとおりです。

ステップ1) クライアントまたはユーザーはビューと対話する。

ステップ2) このビューは、特定のイベントが発生したことをコントローラーに通知します。

ステップ3) コントローラーはモデルに対してデータベースリクエストを送信し、モデルを更新します。

ステップ4) モデルは、変更があったことをビューに通知します。

ステップ5) ビューはモデルデータを受信し、受信したデータに基づいて自身を更新します。

MVC を使用する理由

  • CakePHP MVCは、ビジネスロジックをプレゼンテーションやデータ取得から分離するのに役立ちます。
  • サイトは論理セクションに分割されており、特定のコントローラーで管理できます。
  • アプリケーションのテストやデバッグを行う際、開発者はコードの詳細をすべて知らなくても、エラーを特定して修正することができます。

CakePHP フレームワークを使用するデメリット

  • CakePHPのドキュメントサポートは、本来あるべきほど包括的ではない。
  • CakePHPを使用するには、開発者は、ファンシーなコンテンツを作成するためのデフォルトルートを更新する必要があります。 URLこれは、他のPHPフレームワークと比較すると、より多くの作業が必要となる。
  • CakePHPは、他のフレームワークと比較して、一方向ルーティングを採用しています。
  • PHPを学ぶ フレームワークは初心者にとって必ずしも簡単ではない。
  • 一方通行のルーティングは、Ruby on Railsのようなフレームワークと比較した場合のもう一つの欠点です。

よくあるご質問

はい、既存のCakePHPプロジェクトの保守や、設定よりも規約を重視するアプローチを重視するチームにとって、CakePHPは有効です。LaravelやSymfonyの方がコミュニティ規模は大きいですが、CakePHP 5は活発にメンテナンスされており、堅牢で生産性の高いフレームワークであり続けています。

どちらもMVC PHPフレームワークです。Laravelはより大規模なエコシステム、表現力豊かな構文、そしてEloquent ORMを備えています。CakePHPは厳格な規約と、少ない設定で迅速なスキャフォールディングを重視しています。Laravelの方が人気が高く、CakePHPは従来型のアプリケーションをより迅速に開発できる可能性があります。

現在のメジャーバージョンであるCakePHP 5は、PHP 8.1以降を必要とします。以前のCakePHP 4はPHP 7.4以降をサポートしていましたが、サポート終了が近づいているため、新規プロジェクトでは最新のPHPリリース上でCakePHP 5をターゲットにする必要があります。

はい。AIは、CakePHPの規約に従ってCRUDリソースのマイグレーション、エンティティ、テーブル、コントローラー、テンプレートを生成し、bakeコンソールコマンドの説明を行うことができます。 Rev検証ルールを確認し、各アクションをテストしてください。

はい。AIは非推奨メソッド、更新された名前空間、シグネチャの変更を検出し、段階的に代替案を提案できます。移行は大規模になるため、段階的にアップグレードし、変更ごとにテストスイートを実行してください。