【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の使い方を忘れてしまったら、この記事を思い出して下さい!

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

LINEで送る
Pocket

書いた人

せき

せき

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

おすすめコンテンツ

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

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