MIRACLE
メールサービス申込 ユーザー登録 パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

プロフィール

ミラクル・リナックス株式会社営業・マーケティング部所属。

Linux, OSSに関するマーケティング情報から英語のニュースまで、幅広いトピックを扱っていきます。

ミラクル関連リンク

採用情報

サイト検索

最近のトラックバック

2009年8月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

« AXS3でCakePHPを使うための備忘録2 | メイン | AXS3でCakePHPを使うための備忘録4 »

2008年2月26日 (火)

AXS3でCakePHPを使うための備忘録3

前回まででDBの設計はしたものの、コードの部分は手つかずでした。Ruby on Railsな方はScaffoldするんでしょうが、CakePHPのScaffoldはあまり性能がよくないようです。もっとも、現在開発中の1.2.x系列では改善されるようですが…

しかし、CakePHPにはbake.phpというコードを自動で生成してくれるスクリプトがありますので、こちらを使用したいと思います。

詳細を説明する前に、簡単なMVCの扱いについて。

Bookというモデルを作成し、一覧参照、詳細参照、作成、編集、削除という標準的な機能を実装したい場合、以下のようなファイルを作成します。

モデル: app/models/
 book.php

コントローラ: app/controllers
 books_controller.php

ビュー: app/views/books
 index.thtml、view.thtml、edit.thtml、add.thtml

モデルでデータ型の定義、コントローラでモデルに紐付いたアクションの定義、ビューでアクションに対応した画面表示の定義という具合です。なおビューに削除がないのは、レンダリングする必要がないからです。

それではさっそくターミナルを起動して、コマンドラインから bake.php を実行します。(警告を煩わしいと感じる方は、/etc/php.d/oci8.ini と /etc/php.d/ を「;」でコメントアウトしておくと警告が出なくなります。)

ソースコードの生成先を指定します。自動で認識してくれるので、ここでは「y」を選びます。

$ php /var/www/html/bookshelf/cake/scripts/bake.php

(略)
Bake -app in /var/www/html/bookshelf/app (y/n)
[y] > y

まずはモデルから作成します。

[M]odel
[C]ontroller
[V]iew

What would you like to Bake? (M/V/C)
> M

スクリプトはデータベースを参照し、モデル名を自動で割り出します。ここでは、Bookを選択。

Possible Models based on your current database:
1. Book

Enter a number from the list above, or typein the name of another model.
> 1

モデルで入力検証をする機能がありますが、ここでは有効にしません。

Would you like to supply validation criteria for the fields in your model? (y/n)
[y] > y

モデルのアソシエーションを行うかを聞かれます。ここでは、モデルが一個しかないのでNoです。

Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n)
[y] > n

モデルを生成します。

Look okay? (y/n)
[y] > y

Cake test suite が入っていないので、テストは入れません。

Cake test suite not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n

次はコントローラをBakeします。先ほどMでモデルを選んだ部分でCを選びます。

$ php /var/www/html/bookshelf/cake/scripts/bake.php

(略)
Bake -app in /var/www/html/bookshelf/app (y/n)
[y] > y

[M]odel
[C]ontroller
[V]iew

What would you like to Bake? (M/V/C)
> C

Possible Models based on your current database:
1. Book

Enter a number from the list above, or typein the name of another model.
> 1

インタラクティブにコントローラを生成するか聞かれます。ここでnを選ぶと全て自動で作成されます。ここではnを選びます。

Would you like bake to build your controller interactively>
Warning: Choosing no will overwrite controller if it exist. (y/n)
[y] > n

基本的なアクションメソッドを定義するかを聞かれますので、yと答えます。

Would you like to include some basic class methods (index(), add(), view(), edit())> (y/n)
[y] > y

管理者専用のルーチンを実装するか聞かれます。ここでは、とくにユーザ認証を求めているわけでもないので、必要ありません。

Would you like to create the methods for admin rounting? (y/n)
[y] > n

モデルの時と同じく、Cake test suite が入っていないので、テストは入れません。

Cake test suite not installed. Do you want to bake unit test files anyway? (y/n)
[y] > n

最後にビューをBakeします。先ほどCと選んだ部分でVを選びます。

$ php /var/www/html/bookshelf/cake/scripts/bake.php

(略)
Bake -app in /var/www/html/bookshelf/app (y/n)
[y] > y

[M]odel
[C]ontroller
[V]iew

What would you like to Bake? (M/V/C)
> V

Possible Models based on your current database:
1. Book

Enter a number from the list above, or typein the name of another model.
> 1

インタラクティブにビューを生成するか聞かれます。ここでnを選ぶと全て自動で作成されます。ここではnを選びます。

Would you like bake to build your views interactively>
Warning: Choosing no will overwrite views if it exist. (y/n)
[y] > n

管理者専用のルーチンを実装するか聞かれます。ここでは、とくにユーザ認証を求めているわけでもないので、必要ありません。

Would you like to create the methods for admin rounting? (y/n)
[y] > n

これで、自動生成は完了です。ブラウザで「http://localhost/books」にアクセスすると以下の画面が表示され、本の追加や修正、削除、一覧参照ができるようになります。

Bookshelf_2



ところが。

システムの調整だけやればコードが自動生成されるから楽、と思ったら日本語が通りませんでした。次はテンプレートのいじる方を軽く。

トラックバック

このページのトラックバックURL:
http://www.typepad.jp/t/trackback/4447/11867594

このページへのトラックバック一覧 AXS3でCakePHPを使うための備忘録3:

コメント

コメントを投稿

会社情報 採用情報 個人情報保護方針 商標等取り扱い事項 English
Copyright(c)2000-2006 MIRACLE LINUX CORPORATION. All Rights Reserved.