Pull to refresh

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

Reading time2 min
Views8.2K
jQuery-PHP

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


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

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


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

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


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

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


или даже так:

jQuery::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. Будет не совсем честно. если я скажу что писал данную библиотеку самолично, в написании её мне помогали два человека: josser и B_Uhuru (точнее они начинали, а я взял молоток и зубило и все переделал заново)…

updated: данная библиотека очень схожа по назначению с Xajax, только на клиентской части используется jQuery и небольшой класс для разбора ответа сервера.
Tags:
Hubs:
+24
Comments78

Articles