Антон Шевчук // Web-разработчик

PHP библиотека для jQuery // JavaScript

jQuery-PHP

С тех пор как сочетание “Web 2.0” пришло в массы, все чаще разработчикам сайтов приходиться добавлять “web 2.0 красивости” к сайтам. Очень помогает в этом JavaScript фреймворк jQuery. Описывать все прелести данного фреймворка я думаю не имеет смысла (о нем и так слишком много написано), но мне, как PHP разработчику, не хватало удобного сервер сайда для генерации AJAX ответа, в итоге на свет появилась PHP библиотека jQuery-PHP

Что в данной библиотеке особенного? Ну во первых это синтаксис – он очень схож с JavaScript частью, вот вам пример:

$('#test0').html('new content');

PHP код для генерации такого скрипта выглядит следующим образом:

jQuery('#test0') -> html('new content');

Как видим из примера – синтаксис действительно повторяет знакомый для многих jQuery. Это конечно простенький примерчик, попробуем что-нить посложнее:

jQuery('#test3 div') -> bind('click', array('test'=>'answer'), 'eventAlert')
                     -> css ('cursor', 'pointer')
                     -> css ('color', '#0000ff')
                     -> css ('textDecoration', 'underline');

или даже так:

jQuery('#test2 div') -> html(date('H:i:s') . ': new content')    		
    		         -> css('backgroundColor' , '#0000ff')
    		         -> filter('.red')
    		         -> css('backgroundColor' , '#ff0000')
    		         -> filter('filter')
    		         -> css('backgroundColor' , '#00ff00');

Как видим – даже такие относительно сложные цепочки работают.

На данный момент я не смог протестировать работу всех функций, знаю точно, что существуют следующие нюансы:

  • методам jQuery, которым в качестве параметров могут быть переданы callback функции могут быть вызваны в PHP, но javascript функции не могут генерироваться на лету, следовательно в качестве параметров следует использовать имя существующей функции
  • для поддержки callback функций приходиться писать правила исключения в файле jquery.php.js (см. мегасвитч начинающийся с 30-ой строки)
  • совсем не тестировалось с плагинами

Так же в данной библиотеки есть служебные методы:

  • addMessage – добавить сообщение
  • addError – добавить сообщение о ошибке
  • evalScript – выполнить javascript

Недостатки:

  • Незначительно увеличивается нагрузка на сервер
  • Со сменой дизайна (или при поддержке скинов в системе) могут возникнуть осложнения

P.S. Данная библиотека очень схожа по назначению с Xajax, только на клиентской части используется jQuery и небольшой класс для разбора ответа сервера.

P.P.S. Будет не совсем честно. если я скажу что писал данную библиотеку самолично, в написании её мне помогали два человека: Дмитрий Чиркин и Владимир Котушенко (точнее они начинали, а я взял молоток и зубило и все переделал заново)…

© Антон Шевчук 2007-2023