Тот же код на браузере / сервере - PullRequest
9 голосов
/ 26 января 2010

Я пишу веб-приложение с использованием PHP и сталкиваюсь с несколькими ситуациями, когда мне нужен похожий код на сервере и в браузере. Например:

  • Я хочу проверить ввод пользователя и сгенерировать одинаковые сообщения об ошибках с обеих сторон.
  • Я хочу отформатировать данные с использованием определенных правил (например, если данное поле меньше 1, показать его с двумя десятичными знаками, в противном случае ни одного), и сделать так, чтобы оно отображалось одинаково независимо от того, какая сторона его отображает.

Кажется, что это должно быть распространенной проблемой, так как люди перемещают больше логики с сервера в браузер. Но есть ли общие шаблоны или библиотеки для работы с ними (особенно для PHP)?

Ответы [ 7 ]

3 голосов
/ 26 января 2010

Одним из решений будет использование серверного JavaScript . Тогда вы сможете поделиться огромными кусками кода.

2 голосов
/ 27 января 2010

Вы можете попробовать использовать haxe язык. Он может быть переведен в js / php и даже actionscript (flash).

2 голосов
/ 26 января 2010

Интересный вопрос! Насколько я знаю, есть 2 варианта для PHP:

  • Используйте Ajax для проверки формы, чтобы все происходило на сервере.
  • Существует попытка перенести функции PHP в JS, что должно как минимум облегчить перенос: http://phpjs.org/

Однако в Java вы можете запустить Javascript вместе с Rhino.

Другие вещи, о которых я могу думать, - это уродливые хаки с апплетами Flash или Java или использование фреймворка, такого как Pyjamas.

1 голос
/ 26 января 2010

Частичное решение - AJAX. Например, один раз напишите свой проверочный код на сервере, и пусть ваши формы общаются с сервером, чтобы проверить, является ли ввод верным, и попросить отобразить сообщение об ошибке, если нет.

0 голосов
/ 27 января 2010

Вы можете использовать http://phpjs.org/ для запуска вашего php-кода на стороне клиента.Это работает для большинства функций в php.

0 голосов
/ 26 января 2010

Выполните быструю проверку на стороне клиента (например, сопоставление с образцом, правильность даты и номера) и проверку безопасности на стороне сервера.
Также вы можете использовать AJAX для проверки на стороне сервера, но таким образом у вас может быть разрыв между пользовательским вводом и результатом проверки. Так что используйте JavaScript для быстрой и простой проверки и сделайте тяжелую с PHP.

0 голосов
/ 26 января 2010

json_encode и json_decode - отличное начало - тот же источник данных, доступный в массивах php и объектах json, как требуется.

закодированные данные json_en могут быть переданы через <script> теги или ajax по вашему усмотрению.

...