もふもふ技術部

CakePHPでBakeしてみる


概要

Railsのscaffoldのように必要なコードを自動生成してくれる、CakePHPのbakeを利用してみる。

下記URLを参考にしました。
http://book.cakephp.org/2.0/ja/console-and-shells/code-generation-with-bake.html

前提条件

  • CakePHPの導入が済んでいること
  • データベースの設定が済んでいること
  • OSはLinuxを想定

導入が済んでいない場合は前回の記事を参照。

cakeに実行権限を付与する

bakeには「app/Console/cake」を実行する必要がある。実行権限がない場合は付与しておく。

テーブルを用意する

生成するアプリの対象になるテーブルを用意する。

次回、ユーザ認証機能を作る予定でいるので、ユーザ名とパスワードを持ったテーブルを作ってみる。

PHPUnitを入れておく

PHPUnitが入ってないと途中で「入ってないけどどうする?」みたいな警告が出るので、先に入れておく。

入れたらHTTPサーバの再起動もしておく。

cake bakeでモデルを生成してみる

実行権限が付いたら、とりあえず実行してみる。

上記のような機能があるらしい。まずはモデルを作るので「M」と入力しEnter。

どのデータベースを使うか聞かれるので、defaultのままEnter。

データベースを見て、どのテーブルからModelを生成するか提案してくれる。Userの番号を入力してEnter。

displayField(find(‘list’)した際の結果で利用されるフィールド)を聞かれるけど、今回は特に使う予定はないので「n」で。

「validation設定しようぜ」と提案されるけど、今回は「n」で回避。「y」にすると、どのフィールドにどういった制約を付けるか選べる。

モデルのリレーションとかについても設定できるらしい。ここも「n」で回避。「y」を選ぶと1対1とか1対多でどのテーブルのどのフィールドとJOINするかみたいな質問がされる。

「このモデルを生成するけど、良いかい?」と聞かれるので、「y」で。

「このファイル作るよ。あとテストファイルも作っとく?」と聞かれるので、「y」でテストファイルも作ってしまう。

下記のテスト用PHPファイルが生成される。

「app/Model/User.php」にモデルも作成されている。生成されたモデルの内容はこちら。

とてもシンプル。validateとか自動で加えられるので、使い方がわからない最初の時は重宝しそう。

cake bakeでコントローラを生成してみる

次はコントローラ。cake bakeを呼び出し、「C」。

Databaseはdefaultのまま。

モデルの時と同じく、作成可能なControllerが提案される。Usersの番号を選択。

index, add, view, editの4機能を持つ、シンプルなコントローラを作成する。routingとかは今回は特に設定しない。

「これ作るけどOK?」と聞かれるので、「y」で。

これで「app/Controller/UsersController.php」に、index(一覧表示)、view(単品表示)、add(追加)、edit(更新)、delete(削除)の5つのメソッドを持つControllerが生成された。

ビューを作る

次はViewを作ってみる。「app/Console/cake bake」から「V」で。

モデルやコントローラの時と同じく、default、Usersを選択。

最後に「n」を選べば、Viewが生成される。

生成されたファイルは以下の4つ。

出来上がったページを見てみる

MVCが揃ったので、これでページが見れるはず。実際にページを開いてみる。
http://localhost/users

ユーザの表示、登録、更新、削除機能があるページが表示される。便利。

次回予告

次回はここで作った機能を利用して、ユーザ認証を行う。

The following two tabs change content below.
masato watanabe

masato watanabe

もふもふ部ブレーン。プログラマ兼ライター。