9

PHP を使用して Web アプリを作成していて、サーバーとブラウザーで同様のコードが必要な状況がいくつか発生しています。例えば:

  • ユーザー入力を検証し、両側で同じエラー メッセージを生成したいと考えています。
  • 特定のルールを使用してデータをフォーマットし (たとえば、特定のフィールドが 1 未満の場合は小数点以下 2 桁で表示し、それ以外の場合は表示しません)、レンダリングする側に関係なく同じように表示したいと考えています。

人々がより多くのロジックをサーバーからブラウザーに移行しているため、これはよくある問題のようです。しかし、それを処理するための一般的なパターンやライブラリはありますか (特に PHP の場合)?

4

7 に答える 7

3

1 つの解決策は、サーバーサイド JavaScriptを使用することです。そうすれば、膨大な量のコードを共有できます。

于 2010-01-26T20:26:03.173 に答える
2

興味深い質問です!私の知る限り、PHPには2つのオプションがあります。

  • Ajax を使用してフォームの検証を行うため、すべてがサーバー上で行われます。
  • PHP 関数を JS に導入する取り組みが行われています。これにより、少なくとも移植が容易になるはずです: http://phpjs.org/

ただし、Java では、Rhino で Javascript を実行できます。

他に考えられるのは、Flash や Java アプレットを使った醜いハック、または Pyjamas のようなフレームワークを使ったものです。

于 2010-01-26T20:30:38.880 に答える
2

haxe言語を使用してみてください。js/php や actionscript (flash) に翻訳することもできます。

于 2010-01-27T11:26:18.283 に答える
1

部分的な解決策は AJAX です。たとえば、サーバー上で検証コードを 1 回記述し、フォームがサーバーと通信して、入力が有効かどうかを確認し、そうでない場合はエラー メッセージを表示するように要求します。

于 2010-01-26T20:26:42.337 に答える
0

http://phpjs.org/を使用して、クライアント側で PHP コードを実行できます。これは、php のほとんどの関数で機能します。

于 2010-01-27T06:10:28.393 に答える
0

json_encodeは素晴らしいスタートです - 必要にjson_decode応じて php 配列と json オブジェクトで利用可能なデータの同じソースです。

json_encoded データは、必要に応じて<script>タグまたは ajax を介して提供できます。

于 2010-01-26T20:26:50.260 に答える
0

クライアント側で高速検証 (パターン マッチング、日付と数値の正確性など) を実行し、サーバー側でセキュリティ チェックを行います。
また、AJAX を使用してサーバー側の検証を行うこともできますが、この方法では、ユーザー入力と検証結果の間に応答ギャップが生じる可能性があります。そのため、高速で基本的な検証には JavaScript を使用し、重い検証には PHP を使用します。

于 2010-01-26T20:46:05.873 に答える