bake.phpを使ってみる(CakePHP修行 #008)

SPONSORED LINK

Pocket

※ 今回からタイトルを変えました。

さてCakePHPのお勉強。前回までのあらすじはこちら。

» CakePHP修行! アーカイブ | i d e a * i d e a

さてScaffoldっちゅうやつを使ってみたい。ちなみに以前Railsのデモ映像を見たときのScaffoldのイメージは「コマンドラインから自動的になんかアプリっぽいものを一発で作ってくれる!」というものです。さて、本当にそうなるのでしょうか・・・。

なお、コードの自動生成はいまいち好きではないので、本格的に作るときはScaffoldを使うつもりはゼロ。ただ、「どんだけ簡単か」は知っておきたいので調査の意味もかねてやってみます。

■ scaffoldってなんだ?

まずはScaffoldのやり方を調べるため、ざっくり検索します。わかったことは次の二つ。

  1. Controllerに$scaffoldっていれればいいらしい。
  2. bake.phpってやつを使えばなんかざっくり作ってくれるらしい(しかしこれがScaffoldという機能かどうかは不明。ま、簡単に作れる機能ということで)。

両方試してみたいのですが、まずは簡単そうな後者をやってみます。

■ bake.phpってなんだ?

※ ここからUNIX初心者っぽい記述が続きます。みんな、僕のことを嫌いにならないでね!

では次にbake.phpにて検索。次のサイトが参考になるっぽい。

» CakePHP Users in Japan Wiki – bake.phpの使用

ここで使用されているコマンドは次のとおり。

bake.php -project /home/user/baketest

まずよくわからないのが、いきなりbake.phpで始まっている点。「php -f 」じゃないの?

次にわからないのは「/home/user/baketest」。ここには何をいれるべきなのだろう?でも「baketestフォルダも勝手に作ってくれます」とあるので、まずはこれでやってみましょう。

で、bake.phpがある/cake/scriptsに移動しておもむろにコマンドラインから次のように打ってみます。

[webadmin@100shiki scripts]$ bake.php -project /home/webadmin/codexcode.com/baketest
bash: bake.php: command not found

エラーがでました。そりゃそうです。

[webadmin@100shiki scripts]$ php -f bake.php -project /home/webadmin/codexcode.com/baketest
Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]
...

またしてもエラー。これもまぁ、そうでしょう。bake.php自体のオプションをphp -fにかませる方法がよくわからん・・・(すみません、すみません)。

そこで気を取り直して、/usr/bin/phpにパスを通してみます。.bash_profileを書き直し、「. .bash_profile」で読み込みます。これでphp -fはつけなくてよいはず(なにか違う?)。

[webadmin@100shiki scripts]$ bake.php -project /home/webadmin/codexcode.com/baketest
bash: ./bake.php: 許可がありません

なぬ・・・「chmod 744 bake.php」で許可を与えます。そして再度実行。今度はうまくいきました!なんか次のような画面がでていろいろ出来た模様です。

bake_1.gif

↑ なんかテンプレートファイルをつくってくれました。

bake_2.gif

↑ Sambaで見たファイルの構成はこんな感じ。つまるところ、/appと同じものを作ってくれるというわけね。

そのあといろいろ調べたところ、再度以下のコマンドを実行するといろいろな設定をインタラクティブにやってくれるらしい。

[webadmin@100shiki scripts]$ bake.php -project /home/webadmin/codexcode.com/baketest

DBの設定ができたり、MVCの設定ができたり、ということらしいです。最初にイメージしていたものとは大分違いますね・・・個人的に期待していたのは、「DBの設定を読み取って、/app以下のMVCを勝手に作ってくれる」だったのですが・・・。

というわけでここでbake.phpの設定は断念。インタラクティブでひとつひとつ設定できるのはいいですが、いまいち面倒すぎます(具体的にはここで説明されているような処理になります)。

というわけで、せっかく作った/home/webadmin/codexcode.com/baketestはさくっと削除しちゃいます。

では次のエントリーでは$scaffoldをControllerに足していく方法を試すことにしましょう。

ツイッターもやっています!

SPONSORED LINK

  1. No comments yet.

  1. January 28th, 2009
  2. April 8th, 2009