decorate - advanced bake.php for 1.1
http://cakeforge.org/projects/decorate/
そしてまた、「データベースの指定だけで、数百のテーブルがあったとしてもボタン一発で編集WEB画面を作り出す」という、MasterBakeプロジェクトにもコードが使われています。(なんでもこの作者、数百のテーブルをこれで管理しているらしいです。)
MasterBake - extending bake.php
Jeffrey Gilbert
http://cakeforge.org/projects/autobakery/
かおるんさんのこちらの記事にコメントできなかった(403 Forbiddenと出る)のでトラックバックでお返事しておきます。
PHPのテクメモ
http://php.atseason.com/?eid=490851
decorate.phpおかしくないか?
今手元にあるdecorate.php(Revision:4597、lastmodified:2007/3/7)、データベースの接頭文字列を指定してあるとうまく動いてくれなかった。追試はしていないけれど、バグっぽい。ソースを少しだけ眺めたけど・・・、じっくり見ないとやっぱりわからない。
そうなんです。bake.phpで試してもらえると分かりますが、bakeクラスのインターフェイスが改良された時に入ったバグのようです。
decorateクラスはbakeクラスから派生させているので、bakeクラスという親ガメにバグがあると、"子ガメも"こけてしまいます。しかしこの問題は、下記のTicketで修正され、bake.php rev4669で修正されています。
https://trac.cakephp.org/ticket/2253
それに合わせて、decorate.php 1.1.13.4669.2 をUpしてありますので使ってみてください。
decorate.phpは非常に便利だが、今回、自動生成したスクリプトを覗いてみて、少しイマイチだった
これももしかすると bakeクラスについてですかネ。
提案常時募集中ですのでよろしくお願いします!
当初はbakeクラスを編集していたのですが、Updateするたびに変更するのが大変だったので、decorateクラスをbakeクラスから派生させて、差分だけを書くようにしています。decorateクラスはわりと編集しやすいように書いている(タブの処理など)ので、どしどし変更してみてください。よろしくお願いします。
記事を読んでいただいたとは光栄です(酔っ払いの戯言程度と思ってくださいね)。
「イマイチ」と思ったのは出力する文章(setFlashするところ)でピリオドがあったりなかったりしたところです。統一されていると綺麗かなーと(すみません、本質でないところで)。
それと、基本的に遷移はgetがいいなと思いました(これも私の個人的な嗜好による部分かもしれません)。
あと、これはbake.phpにも言えるのですが、Sessionって使わないとどうしようもないものでしょうか。使わなくてもすむものなら使わないほうがすっきりして好きです。
すみません、個人的趣味な要望ばかりで。
当面、受注案件をcakePHPでこなしていこうと思っているので、どこかでフィードバックさせていただきます。では。
いろいろな意見で改善されていきますので、遠慮なくお願いいたします!
出力する文章は bake.php のほうのものなので、本家に直してもらわないといけませんね。
Sessionを使わない方法も設計時に考えたのですが、そうすると、今度はURLに付けるパラメータが増えてしまい、かえって自分のプロジェクトに取り入れにくいかな、と考えたのが理由でした。
たいていのプロジェクトではSessionを使いますよね……。
またよろしくお願いします!