我正在使用 PHP 编写一个 Web 应用程序,并且遇到了几种情况,我需要在服务器和浏览器上使用类似的代码。例如:
- 我想验证用户输入,并在双方生成相同的错误消息。
- 我想使用某些规则来格式化数据(例如,如果给定的字段小于 1,则以两位小数显示,否则不显示),并且无论哪一方呈现它,都让它看起来相同。
看起来这应该是一个常见的问题,因为人们正在将更多的逻辑从服务器转移到浏览器。但是是否有任何通用的模式或库来处理它(特别是对于 PHP)?
我正在使用 PHP 编写一个 Web 应用程序,并且遇到了几种情况,我需要在服务器和浏览器上使用类似的代码。例如:
看起来这应该是一个常见的问题,因为人们正在将更多的逻辑从服务器转移到浏览器。但是是否有任何通用的模式或库来处理它(特别是对于 PHP)?
一种解决方案是使用服务器端 JavaScript。那时您将能够共享大量代码。
有趣的问题!据我所知,PHP 有 2 个选项:
然而,在 Java 中,您可以使用 Rhino 运行 Javascript。
我能想到的其他事情是使用 Flash 或 Java 小程序进行丑陋的 hack,或者涉及像 Pyjamas 这样的框架。
您可以尝试使用haxe语言。它可以翻译成 js/php 甚至 actionscript (flash)。
部分解决方案是 AJAX。例如,在服务器上编写一次验证代码,然后让表单与服务器对话以查看输入是否有效,如果无效则要求显示错误消息。
在客户端进行快速验证(如模式匹配、日期和数字正确性)和服务器端的安全检查。
您也可以使用 AJAX 进行服务器端验证,但这样您可以在用户输入和验证结果之间产生响应差距。因此,使用 JavaScript 进行快速和基本的验证,并使用 PHP 进行繁重的验证。
json_encode是一个很好的开始 - php 数组和json_decode
json 对象中可用的相同数据源(根据需要)。
json_encoded 数据可以通过<script>
您认为合适的标签或 ajax 提供。
您可以使用http://phpjs.org/在客户端运行您的 php 代码。这适用于 php 中的大多数函数。