12

伙计们,

我正在寻找构建一个PHP5 UI,我很确定它对一堆应用程序很常见。基本上,它是一个表达式构建器,允许用户指定通过逻辑运算符 (AND/OR) 组合的表达式,如下所示:

  • 场 X > 3 和场 Y = 5
  • FieldY = "bob" 并且 FieldZ 不为空
  • FieldX > '5/23/2007' OR (FieldY = 5 AND FieldY 不为空)

理想情况下,像这样的系统将允许我作为程序员指定用户可以选择的参数列表(列)以及每个参数的数据类型。它还将提供一个很好的、用户友好的界面来定义这样的表达式 - 我在想象一个类似于表格的东西,其中每一行都有几个选择器:

[列] [条件] [值] [AND/OR] [列] [条件] [值] [AND/OR] ...

你知道做类似事情的开源组件吗?或者也许是这种功能的一部分?

4

8 回答 8

12

一个警告。这些类型的通用表达式构建器通常被认为是解决各种用户问题的优秀解决方案。思维倾向于沿着这些路线:

  • 用户想要所有这些不同的报告
  • 我们无法为他们提供 SQL 访问权限(即使他们能够理解)
  • 我们没有时间编写所有这些自定义报告
  • 因此,我将为他们提供一种简单的方法来编写查询,而无需了解特定的语法、表和字段。

这不一定是一个坏主意,但我们在我的公司发现,非技术用户在理解和构建比一组 ANDS 或一组 ORS 更复杂的表达式方面存在惊人的困难。这对我们程序员来说很难掌握,因为我们大多数人可能甚至在我们学会编程之前就对布尔逻辑有一个直观的理解。

我建议您不要尝试给他们完全的灵活性来创建他们想要的任何表达式,而是将一个 UI 放在一起,让程序员在后端定义更复杂的东西,但在前端为用户提供简单的选择 -结尾。显然,这说起来容易做起来难。

记住——有时最终用户的困难不是因为他们不知道表达想法的正确语法。更多的时候是因为他们甚至不知道如何以明确的方式表达他们的想法,即使他们被提供了一种简单的方法来做到这一点。

注意:我并不是说最终用户总是白痴——只是他们的思维方式可能与我们这些疯狂的开发人员不同。

于 2009-06-16T20:27:56.203 回答
1

我认为这是一个非常有趣的想法。您打算为个人使用或通过工作进行此项目吗?

如果您打算亲自从事这个项目,也许您应该自己编写并将其变成一个开源项目。看起来已经对这个领域产生了一些兴趣,这将是一次很好的学习经历。

否则,我可以看到一家公司如何在这样的事情中找到价值。它将为程序员提供另一种实用程序,可以帮助他们更轻松地完成工作并从长远来看获得回报。

无论哪种方式,这个项目都是赢家。您将学到很多东西,并创造出其他人认为有用的东西。

于 2009-06-12T15:32:24.487 回答
1

这不完全是一个组件,但您可以查看Magento 中购物车规则构建器的条件选项卡,以获得此类功能的可靠 PHP 实现。它是为电子商务定制的,所以它不是一个通用的数据库覆盖,但它确实有一个很好的条件构建器界面。

于 2009-06-12T15:37:38.780 回答
1

看看这个: http: //www.codeproject.com/KB/custom-controls/SqlWhereBuilder.aspx

下载组件的客户端 JavaScript 库版本并根据您的需要对其进行自定义。干杯。

于 2010-09-17T12:25:45.863 回答
0

我将从创建一个面向对象的查询模型开始。例如。标准对象。下一步是编写一个允许操作此模型结构的 UI。

于 2009-06-09T11:56:38.343 回答
0

我最近自己完成了这样的功能,恕我直言,编写自己的实现更容易。

于 2009-06-09T13:50:15.883 回答
-1

我认为这通常与 UI 相关,而不是 PHP。你最好重新标记你的问题。也许您只想在 PHP 中解析这些定义,在这种情况下,我建议使用 preg_replace_callback。

于 2009-06-09T08:32:49.630 回答
-5

为什么不尝试使用smarty这是一个模板引擎。您只需要获取并解析用户输入。

现在我在想,以任何方式执行此操作都需要您检查用户输入以避免注入。

于 2009-06-09T03:14:56.980 回答