2009年12月19日土曜日

Delphi for PHP を使ってみた

 設計中のシステムで、リレーションが Ruby ActiveRecord の OR マッピングでは、とても対応できないよなー。と思っていたので、もっと良さそうなフレームワークは無いか?と探して、Delphi for PHP だ!という結論に達しました。Rails の OR マッピングは、すんなりいけば生産性は高いけども、システムの都合をユーザに押し付けてしまう点が残念です。

 Delphi と名乗るだけあって、お馴染みの TDatabase, TTable, TDataSource, TQuery といったコンポーネントがあって、ビジュアルにバシバシとリレーションを構築できます。SQLも書きたい放題!キターーーーっと、大興奮しました。しかし、1日使ってみて、出した結論は、導入するには2年ほど時期尚早。

 どの辺がダメだったかと言うと、DBGrid, DBPaginator の作りがダメ。
  • DBGrid は limit で設定した値の数だけレコードを一度にキャッシュするだけで芸がない
  • DBPaginator は、Next のリンクを押すと、次ページに行くのではなく、次レコードに行く
  • DBPaginator は、終盤のレコードにいくと、中間の数字が大きくなってデザインがメタメタ
  • DBGrid のJSクリックイベントは、コンポーネント全体のクリックイベントしかない
  • DBGrid の行中にボタンを配置する等のカスタマイズは至難
  • DBPaginator と DBGrid が連動するわけではない
 次いで、DataSource と他のコンポーネントの連動が無い。この辺は、非同期にサーバ・サイドのモデルと連動してレコードを取得し、JavaScript のイベント連携で動作するという期待を裏切ってました。(私の求めているレベルが高いのかもしれません)

 上記設計の背景には、JavaScript が OFF の設定でも動作しなければならないという思想から来ているのかもしれません。どっちかつうと、Delphi for PHP は、コンシューマ向けというよりもビジネス向けなので、JavaScript が OFF という設定は、切り捨てて良いのではないかと思います。

 Delphi for PHP かなり変態チックな感じで面白いだけに残念です。

0 件のコメント: