エンジニア採用セミナー
エンジニア採用セミナー
2012.07.19

CRUDを楽々生成!CakePHP2.1.3でBakeを利用する方法【第二章】

tetsu

こんにちは、tetsuです。
前回の記事(楽々開発!CakePHP2.1.3でBakeを利用する方法(+注意事項)【第一章】)に引き続き、第二章ではBakeでCRUDを楽々生成する方法について説明します。

ちなみに「CRUD」とは

  •  Create(生成)
  •  Read(読み取り)
  •  Update(更新)
  •  Delete(削除)

の、それぞれの頭文字をとった用語です。
Webのアプリケーションを作る際に、必ず必要となる機能です。

CakePHPでは、CRUDそれぞれの基本的な処理から画面までをBakeを利用して
自動生成することができます。
※CakePHPを使っている方はおなじみの機能ですが・・・

事前準備

BakeのCRUDを行うにはデータベースにテーブルが存在する必要があります。
ここでは、データベースを「MySQL」、テーブルは「users」を利用して記載しています。「users」テーブルのテーブル情報は以下とします。

CREATE TABLE IF NOT EXISTS `users` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
 `created` datetime DEFAULT NULL,
 `modified` datetime DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1 ;

CRUDを一括生成

まずはCRUDを行う基本的なコマンドはこちら
※第一章で行った環境の続きとして記載します。

php bake.php bake all -app /var/www/html/test

このコマンドを実行すると、次のような質問が表示されます。

Welcome to CakePHP v2.1.3 Console
---------------------------------------------------------------
App : test
Path: /var/www/html/test/
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Possible Models based on your current database:
1. User
Enter a number from the list above,
type in the name of another model, or 'q' to exit
[q] >

この質問ではCRUDを生成対象となる、テーブル名を指定します。
テーブル名「users」はCakePHPの命名規則では「User」となりますので
「1」と入力し次へ進みます。

続いて質問される内容は

Creating file /var/www/html/test/Model/User.php
Wrote `/var/www/html/test/Model/User.php`
PHPUnit is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

「PHPUnit」と呼ばれるユニットテストに利用するモデルファイルを作るかどうかです。
「PHPUnit」の説明はここでは省略しますので、「n」と入力して次へ進みます。
(説明だけで長くなるので。。。)

続いて質問される内容は

Creating file /var/www/html/test/Controller/UsersController.php
Wrote `/var/www/html/test/Controller/UsersController.php`
PHPUnit is not installed. Do you want to bake unit test files anyway? (y/n)
[y] >

またまたユニットテストで利用するコントローラーファイルを作るかどうかです。
ここも省略して「n」を入力して次へ進みます。

・・・で終わりです!

Bake All complete

が表示されていれば正常に動作したということで、完了です。

ブラウザからBakeの出力先にアクセスします。
※ここでは「/var/www/html/test」へBakeしたとします

例)
http://Bake先ドメイン/test/users

アクセスすると、以下のように表示されるかと思います。


この画面では「users」テーブルに登録されているデータが表示され、画面左の「New User」ボタンから「users」テーブルにデータを登録する画面など基本的なCRUDに必要な処理と画面、CakePHPではコントローラーとビューが生成されていることが確認できます。
Bakeの際にモデルやコントローラー、ビューが生成したメッセージが

例)

Wrote `/var/www/html/test/Controller/UsersController.php`

とありますので、それぞれのファイルを確認できます。あとは開発する処理をモデルやコントローラーに組み込み、ビューにデザインを組み込むだけです。
とりあえずCakePHPのBakeを試したい方にご参考になればいいかな、と思います。

第二章はここまでです。次回は一括ではないBakeについて解説していきます。