【发布时间】:2013-03-14 14:53:37
【问题描述】:
我正在编写一个允许用户为产品选择不同选项的软件。价格将根据选择的选项而有所不同。服务器正在使用 LAMP 堆栈。客户端将使用 HTML5 和 javascript。我试图防止两次重写验证和价格计算,一次在服务器上,一次在客户端上。目前我有几个选择。
- 做正常的事情,重新编写两次验证和价格计算
- 仅在服务器上进行验证和计算,并使用 ajax 更新客户端(速度慢,我想避免。)
- 实现两种语言都支持的辅助语言(想到 Lisp)
- 用javascript编写验证和计算逻辑。将 V8js 库与 php 一起使用
- 使用 Node.js
我也在努力避免对项目有太多要求。如果我走 Node.js 的路线,那么我将不得不将它安装在单独的子域上,然后购买通配符 SSL 证书,或者可能只是另一个证书。我宁愿不要把它扔在同一个域上,并且有一些奇怪的代理/请求转发程序来决定是 PHP 还是 Node.js 来处理请求。
PHP 站点的某些部分需要访问数据。我正在使用 Doctrine 2 作为 ORM。走这条路我不认为使用 Node.JS 是最好的路线。
我更倾向于选项一,但也许我可以编写一些代码来生成所需的 java 脚本代码。我还有其他选择吗?有什么建议?谢谢。
【问题讨论】:
-
你有什么问题?
-
对深夜发帖深表歉意!基本上我试图避免两次重写表单验证和价格计算代码。如果我可以在两个地方使用相同的代码,那就太好了。然后在一切验证并计算价格之后,我可以在数据库端保存和处理它,或者如果它是客户端发送的表单和他们选择的选项。这个想法是从 MVC 中获取 M 并在服务器和客户端上使用它。对于客户,模型将从表格中填写。数据将来自一个表格。如果是 php,数据将来自 JSON。
-
Ajax 是一个不错的选择,尽管您想避免它。我不知道lisp。然后你有时间你应该做正常的事情。否则我会推荐 v8js。
-
您能详细说明选项 3 吗?
-
当时我正在考虑编写一种迷你语言,其中输入从主机设置并传递给解释语言。然后将运行解释语言。或者,您可以编写一个规则引擎。您将约束/方程定义为可以编码的数据结构。每种宿主语言都必须确保求解器重现相同的结果。求解器不应该关心数据来自哪里。要在客户端显示结果,您可以使用查找将结果映射到元素。示例用例显示计算结果、表单验证。
标签: php javascript code-reuse