2007年03月28日

decorateは常時提案募集中

decorate.php は bake.phpの拡張で、「テーブルデータから、ページネーション、検索、ソート機能のついたWEBインターフェイスを自動生成する」ツールです。

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クラスはわりと編集しやすいように書いている(タブの処理など)ので、どしどし変更してみてください。よろしくお願いします。
ラベル:cakephp decorate
posted by SDozono at 11:03| 東京 ☀| Comment(2) | TrackBack(0) | CakePHP Tips | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
こんばんは、かおるんです。
記事を読んでいただいたとは光栄です(酔っ払いの戯言程度と思ってくださいね)。

「イマイチ」と思ったのは出力する文章(setFlashするところ)でピリオドがあったりなかったりしたところです。統一されていると綺麗かなーと(すみません、本質でないところで)。
それと、基本的に遷移はgetがいいなと思いました(これも私の個人的な嗜好による部分かもしれません)。

あと、これはbake.phpにも言えるのですが、Sessionって使わないとどうしようもないものでしょうか。使わなくてもすむものなら使わないほうがすっきりして好きです。

すみません、個人的趣味な要望ばかりで。
当面、受注案件をcakePHPでこなしていこうと思っているので、どこかでフィードバックさせていただきます。では。
Posted by かおるん at 2007年04月01日 23:19
コメントありがとうございます。
いろいろな意見で改善されていきますので、遠慮なくお願いいたします!
出力する文章は bake.php のほうのものなので、本家に直してもらわないといけませんね。

Sessionを使わない方法も設計時に考えたのですが、そうすると、今度はURLに付けるパラメータが増えてしまい、かえって自分のプロジェクトに取り入れにくいかな、と考えたのが理由でした。
たいていのプロジェクトではSessionを使いますよね……。

またよろしくお願いします!
Posted by 管理人 at 2007年04月06日 15:21
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!