test

CakePHP Note

Bakeによるコードの生成

UPDATE:2009.11.18

コマンドラインからBakeを使用して、アプリケーションに必要なコードを生成する事が出来ます。データベースにテーブルを作成しておけば、Bakeを使ってデータベース設定、モデル、ビュー、コントローラのファイルを生成する事が出来ます。

Bakeを使用する準備

cake/console/にcakeというコマンドのファイルがありますので、パスを通しておきます。

パスが通っていない時のエラー

$ cake bake
-bash: cake: command not found


シェルがbashならホームディレクトリの設定ファイル(.profile)に以下のように記述して、新規シェルにアクセスし直します。
'path-to-cake/cake_1.2b'の部分はcakeをインストールしたディレクトリを指定します。

PATH=$PATH:/path-to-cake/cake_1.2b/cake/console/

(bashの.profileや.bash_profileなどの設定ファイルについての説明がbashの便利な機能を使いこなそうにあります)

Bakeを使う

アプリケーションのディレクトリに移動し、'cake bake'を実行します。

$ cd /path-to-cake/app
$ cake bake



Bakeを実行すると以下の例のように対話的な画面になり、やり取りを続けてゆくとコードが生成されます。

Hello Max,

Welcome to CakePHP v1.2.0.6311 beta Console
---------------------------------------------------------------
App : garacter.com
Path: /path-to-cake/app
---------------------------------------------------------------
Interactive Bake Shell
---------------------------------------------------------------
[D]atabase Configuration
[M]odel
[V]iew
[C]ontroller
[P]roject
[Q]uit
What would you like to Bake? (D/M/V/C/P/Q) 

生成されたファイルの文字コードを日本語の使えるUTF-8などに変更するのを忘れずに。文字コードを変更せずに日本語を使うと予期せぬ不具合が起こってしまいます。例えばモデルファイルに指定した検証ルールのエラーメッセージが表示されないなど。

新しくアプリケーションを追加する

'cake bake project'を実行します。

Welcome to CakePHP v1.2.0.7125 RC1 Console
---------------------------------------------------------------
App : app
Path: /path-to-cake/app
---------------------------------------------------------------
What is the full path for this app including the app directory name?
Example: /path-to-cake/app/myapp  
[/path-to-cake/app/myapp] >

アプリケーションのフルパスを確認されますので、パスを入力して実行します。

[/path-to-cake/app/myapp] >  /path-to-cake/app/newapp    
Bake Project
Skel Directory: /path-to-cake/cake/console/libs/templates/skel
Will be copied to: /path-to-cake/app/newapp
---------------------------------------------------------------
Look okay? (y/n/q) 
[y] > y
Do you want verbose output? (y/n) 
[n] > n
---------------------------------------------------------------
Created: myapp4 in /path-to-cake/app/newapp
---------------------------------------------------------------

Creating file /path-to-cake/app/newapp/views/pages/home.ctp
Wrote /path-to-cake2/app/newapp/views/pages/home.ctp
Welcome page created
Random hash key created for 'Security.salt'
CAKE_CORE_INCLUDE_PATH set to /path-to-cake/cake in webroot/index.php
CAKE_CORE_INCLUDE_PATH set to /path-to-cake/cake in webroot/test.php
Remember to check these value after moving to production server