【CakePHP入門】bakeの使い方

こんにちは!フリーエンジニアのせきです。

CakePHPには、データベースのテーブルに合わせてModel、Template、Controllerの雛形を自動生成してくれるbakeという便利な機能があります。

この記事では、

・bakeとは何か知りたい
・bakeの使い方を知りたい

という基本的な内容から、

・コードを一括作成する方法を知りたい

といった応用的な内容に関しても解説していきます。

今回はそんなbakeの使い方について、わかりやすく解説します!

bakeとは

bakeとは、CakePHPのMVCモデルによるWebアプリケーションの雛形を自動生成するための機能です。

MVCモデルとはWebアプリケーションのデザインパターンで、アプリケーションを以下の3つの役割に分割します。

  • Model アプリケーションのデータとビジネスロジックを持つ
  • View ユーザインターフェイスを生成する
  • Controller ユーザからのリクエストを受け取り、ModelとViewを使いレスポンスを返す

bakeは指定したテーブルに対しこれら3つの部品を生成し、そのテーブルへのCRUD機能を持つWebアプリケーションを作成します。

CRUD機能とは、Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)機能です。

bakeはCakePHP1.Xからある機能ですが、CakePHP3.Xからいくつか仕様が変わっています

大きな違いに、以下のようなものがあります。

  • bakeを実行するcakeコマンドのパスが変更
  • bakeの実行方法が対話式の実行から、パラメータを指定して実行する方式に変更
  • ユーザインターフェイスの生成部分は、ViewではなくTemplate

この記事では、CakePHP3.Xのbakeの使い方について解説していきます。

bakeの使い方

事前準備

bakeを使用するには、CakePHPのインストールが完了している必要があります。

bakeはcakeコマンドから実行しますが、cakeコマンドのパスは「[プロジェクトのパス]/bin」になります。

CakePHP3.Xから変更されていますので、注意してください。

以下のようにcakeコマンドを実行すると、bakeの機能一覧が表示されます。

以下は、プロジェクトのパスが「C:\xampp\htdocs\cakephp\cake3_test\bin」である場合の実行結果です。

bakeコマンドを引数なしで実行すると、bakeで実行可能な引数の一覧が表示されます。

Windows、Linux、Macともに、使い方は同じです。

次に、使用するデータベースの設定とテーブルの作成を行います。

データベースの設定は、「[プロジェクトのパス]/config/app.php」で行います。

ドライバ、ホスト名、ポート、ユーザ名、パスワード、データベース名等、使用するデータベースの設定に変更します。

今回アプリケーションを作成するテーブルとして、ユーザ情報を管理するUSERSテーブルを用意します。

Modelの作成

以下のコマンドを実行すると、作成できるModelの一覧が表示されます。

以下は、設定したデータベースにUSERSテーブルとCOMPANYテーブルがある場合の実行結果です。前章で作成したUSERSテーブルに加えてCOMPANYテーブルが追加してあります。

今回はUSERSテーブルに対してアプリケーションを作成していきますので、以下を実行します。

実行結果

これでModelが作成されます。

データベースに接続できない場合はエラーが発生します。

その場合は、「[プロジェクトのパス]/config/app.php」のデータベース設定が正しいか、php.iniで使用するドライバのモジュールが有効になっているかを確認してください。

Templateの作成

次にTemplateの作成を行います。

以下を実行します。

実行結果

Contorollerの作成

次にContorollerの作成を行います。

以下を実行します。

実行結果

作成されたアプリケーションの確認

自動生成されたアプリケーションを確認していきます。

http://[サーバ名]/[プロジェクト名]/users」にアクセスします。

bake後のUSERS画面

USERSテーブルの内容が一覧表示されます。今はデータがないのでテーブルに何も表示されていません。

New Userをクリックすると新規ユーザー登録画面に遷移します。これがCRUDのC(Create)に該当します。

ユーザー情報登録画面

ユーザーを追加してからList Usersをクリックすると最初の一覧画面に遷移します。今回はユーザー情報を追加したので、テーブルにその情報が表示されています。
テーブルのAction列にあるView, Edit, Deleteを選択することで、表示編集削除もできます。
これらがCRUDのRead, Update, Deleteにそれぞれ対応しています。

ユーザー登録後のUSERS画面

allコマンドで一括作成する

ここまではModel、Template、Controllerを個別に作成していましたが、これら3つを一括で作成することもできます

以下を実行します。

個別に作成するのと、全く同じものが作成されます。

実行結果

今回は、すでにbakeを実行していたフォルダに対してbake allを行ったので、Do you want to overwrite? (y/n/a/q)のように上書きの確認が表示されました。

それぞれy=yes、n=no、a=全てyesとする、q=bakeコマンドを中断するという意味なので、必要に応じてキーボードから入力してください。

まとめ

今回はbakeの使い方について解説しました。

bakeを使うと、MVCモデルによるWebアプリケーションがとても簡単に作成できます。

bakeの使い方を忘れてしまったら、この記事を思い出して下さい!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

せき

せき

フリーランスでWebシステム開発やゲーム開発をしています。
読者の方にプログラミングの面白さをお伝えしたいです。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説