2009-06-09 17 views
11

フォーク、PHPの汎用宣言式ビルダー

私は確かにかなりのアプリケーションに共通していると思うPHP5 UIを構築したいと考えています。

  • FieldX> 3、FieldY = 5
  • FieldY = "ボブ" とFieldZではありません。基本的には、ユーザーは論理演算子(AND/OR)を介して結合式を指定することができます式ビルダは、このように、ですヌル
  • FieldX>「2007年5月23日」OR

理想的には、そのようなシステムは、パラメータのリストを指定するには、プログラマとして私を許す(FieldY = 5とFieldYはnullではありません)ユーザーは、それぞれの列(列)とデータ型を選択できます。そのような式を定義するための素敵でユーザーフレンドリーなインターフェースを提供します - テーブルのようなものを想像していますが、各行に複数のピッカーがあります:

[条件] [値] [AND/OR ] [条件] [値] [AND/OR] ...

このようなことをするオープンソースコンポーネントについてご存知ですか?あるいは、この種の機能の一部でもいいですか?

答えて

12

注意が必要です。これらのタイプの汎用式ビルダーは、一般に、さまざまなユーザーの問題に対する優れたソリューションと考えられています。思考はこれらの線に沿って行く傾向がある:

  • ユーザーは、これらすべての異なるレポートを望んでいる
  • 我々は(彼らはそれを理解できたとしても)
  • 我々にはない彼らにSQLアクセスを与えている方法はありません
  • これらすべてのカスタムレポートを書き込む時間がある
  • したがって、特定の構文、テーブル、およびフィールドを知らなくても簡単にクエリを記述できます。

これは必ずしも悪い考えではありませんが、私たちの会社では、非専門家のユーザーは、ANDSグループまたはORSグループよりも複雑な表現を理解し、構築することが驚くほど困難です。プログラマーが理解するのは難しいです。ほとんどの人は、プログラミングを学ぶ前にブール論理について直感的に理解していたでしょう。

プログラマーがバックエンドでより複雑なものを定義できるようにUIを組み立てるのではなく、ユーザーに単純な選択肢を与えるUIを作成することは、完全な柔軟性を与えることを推奨しませんフロントエンドでこれは明らかに、完了したよりも簡単です。

覚えておいてください - エンドユーザーの難しさは、自分の考えを表現するための正しい構文がわからないということではありません。自分の考えを明確に表現する方法たとえそれが簡単な方法で提供されていたとしても。

注:エンドユーザーが常に馬鹿げているというわけではありません。彼らの心は私たちの狂った開発者とは違うかもしれません。

+0

これは素晴らしい、素晴らしい点です。ほとんどの人は意思決定の観点から考えていません。 –

-5

なぜテンプレートエンジンであるsmartyを使ってみませんか?ユーザー入力を取得して解析するだけで済みます。

私は考えているので、注射を避けるためにユーザー入力をチェックする必要があります。

0

これは、一般的にPHPよりUIに関連していると思います。あなたはあなたの質問を取り直す方がよいでしょう。 PHPでこれらの定義を解析したいと思うかもしれません。この場合、preg_replace_callbackを使用することをお勧めします。

0

まずオブジェクト指向のクエリモデルを作成します。例えば。 Criteria-objects。次のステップでは、このモデル構造の操作を可能にするUIを記述します。

0

私は最近、自分でこのような機能を実行しました。IMHOでは、独自の実装を簡単に作成できます。

+0

PHPになっていますか?あなたのコードの一部を投稿するように気をつけますか?ありがとう – alex

+0

はい、PHP。実際、それは不自然で簡単でした。ここでは、ルールの構造は次のとおりです。 $ルール=配列( 'フィールド' => '名前'、 'アクション' => 'EQ'、//平等のためのテスト 'の値' = 'ジョン*'、 「bit_operation '=>' AND '//この条件と次の間の結合 } ルールはセッションで配列に保存され、SQLクエリ構築関数によって使用されました。クラスはありません - これだけです:) –

+0

Arrgh、私。 –

1

これは非常に興味深い考えです。あなたは、個人的な使用や仕事を通じてこのプロジェクトに取り組む予定ですか?

このプロジェクトで個人的に作業する予定がある場合は、自分で作成してオープンソースプロジェクトにする必要があります。すでにこの分野に関心があり、良い学習経験になるようです。

そうでなければ、企業がこのような方法でどのように価値を見つけられるかを見ることができます。プログラマーには、仕事を少しでも簡単にし、長期的には配当を支払うのに役立つもう1つのユーティリティが提供されます。

いずれにしても、このプロジェクトは勝てます。あなたはたくさんのことを学び、他の人が役に立ちそうなものを作ります。

1

これはまさにコンポーネントではありませんが、Shopping Cart rule builder in Magentoの[条件]タブを参照して、この種の機能を実装するための固いPHPを確認してください。それは電子商取引に合わせてカスタマイズされているため、一般的なデータベースオーバーレイではありませんが、優れた条件作成インターフェースを備えています。

+0

これはSteveのどのバージョンですか?私は1.1.3を使用していると思いますが、これはありません。 – alex

+0

メインの水平メニューで、[プロモーション]> [ショッピングカート価格ルール]に移動します。次に、新しいルールを追加します。新しいルールフォームで、左側の「条件」タブをクリックします。私は1.0.19 +を実行しています –

1
このうち

チェック:http://www.codeproject.com/KB/custom-controls/SqlWhereBuilder.aspx

コンポーネントのクライアント側のJavaScriptライブラリのバージョンをダウンロードして、あなたのニーズに合わせてカスタマイズします。乾杯。

+1

これは本当に良いアイデアです。ありがとう! – NPC