PHP библиотека для jQuery // JavaScript
С тех пор как сочетание “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. Будет не совсем честно. если я скажу что писал данную библиотеку самолично, в написании её мне помогали два человека: Дмитрий Чиркин и Владимир Котушенко (точнее они начинали, а я взял молоток и зубило и все переделал заново)…