Как-то незаметно на Хабре прошло появление в свет интересной, на мой взгляд, библиотеки.
qJerry — это библиотека для работы с XML-документами, написанная на языке PHP. Основная миссия qJerry — сделать работу с XML комфортнее, чем позволяют стандартные средства PHP, такие как расширение DOM.
При разработке современных веб-приложений, XML, PHP и JavaScript часто встречаются вместе, для того чтобы осуществилось чудо под названием AJAX. Однако, разработчику такая встреча может стоить много времени и нервов, если он не вооружится хорошими инструментами. Одним из таких инструментов, облегчающих нам жизнь, является библиотека jQuery. Не будет преувеличением сказать, что она настолько удобна в использовании, а принципы, положенные в её основу, настолько просты и гениальны, что их хочется вынести за рамки JavaScript и использовать везде, где приходится работать с XML. Библиотека qJerry — как раз такая попытка спроецировать на PHP подход, используемый в jQuery.
Несомненно, самым приятным свойством jQuery является то, что код, написанный с его помощью, в разы меньше функционально аналогичного кода, написанного с использованием стандартных средств, не говоря уже о существенной экономии времени. Подобно jQuery, который избавил честных программистов на JavaScript от кучи лишней работы, qJerry пытается сделать то же самое и для тех, кто пишет на PHP. И хотя qJerry ориентирован в первую очередь на создателей веб-приложений, он может быть полезен всем, кому приходится работать с XML в PHP.
qJerry является своеобразной обёрткой для расширения DOM и почти полностью копирует поведение и API библиотеки jQuery, знакомый многим веб-разработчикам. Есть несколько важных отличий:
Предположим, нам нужно создать такой XML-документ:
Делаем это с использованием традиционного DOM:
А теперь то же самое с использованием qJerry:
Не трудно видеть, что qJerry позволяет работать с XML гораздо проще, чем DOM, даже в самом тривиальном случае, не говоря уже о сложных манипуляциях с множественными запросами и изменениями дерева XML.
Ну и собственно библиотека: qJerry
О библиотеке qJerry
qJerry — это библиотека для работы с XML-документами, написанная на языке PHP. Основная миссия qJerry — сделать работу с XML комфортнее, чем позволяют стандартные средства PHP, такие как расширение DOM.
При разработке современных веб-приложений, XML, PHP и JavaScript часто встречаются вместе, для того чтобы осуществилось чудо под названием AJAX. Однако, разработчику такая встреча может стоить много времени и нервов, если он не вооружится хорошими инструментами. Одним из таких инструментов, облегчающих нам жизнь, является библиотека jQuery. Не будет преувеличением сказать, что она настолько удобна в использовании, а принципы, положенные в её основу, настолько просты и гениальны, что их хочется вынести за рамки JavaScript и использовать везде, где приходится работать с XML. Библиотека qJerry — как раз такая попытка спроецировать на PHP подход, используемый в jQuery.
Несомненно, самым приятным свойством jQuery является то, что код, написанный с его помощью, в разы меньше функционально аналогичного кода, написанного с использованием стандартных средств, не говоря уже о существенной экономии времени. Подобно jQuery, который избавил честных программистов на JavaScript от кучи лишней работы, qJerry пытается сделать то же самое и для тех, кто пишет на PHP. И хотя qJerry ориентирован в первую очередь на создателей веб-приложений, он может быть полезен всем, кому приходится работать с XML в PHP.
qJerry является своеобразной обёрткой для расширения DOM и почти полностью копирует поведение и API библиотеки jQuery, знакомый многим веб-разработчикам. Есть несколько важных отличий:
- в качестве языка запросов используется XPath, селекторы jQuery не поддерживаются;
- методы типа append(), before() и т.п. возвращают множество добавленных элементов; вернуться к исходному множеству можно с помощью метода end();
- методы для работы с событиями и эффектами, а также другие, специфичные для родного окружения jQuery, браузера, не поддерживаются, поскольку не имеют смысла в контексте серверного языка программирования;
- названия методов empty() и clone() изменены соответственно на clear() и copy(), во избежание конфликтов с зарезервированными словами PHP;
- qJerry ориентирован на работу с любым количеством произвольных XML-документов, тогда как jQuery работает преимущественно с одним — собственно веб-страницей.
Примеры использования qJerry
Простой пример
Предположим, нам нужно создать такой XML-документ:
<?xml version="1.0" encoding="UTF-8"?> <items><item id="1"/><item id="2"/></items>
Делаем это с использованием традиционного DOM:
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->appendChild($dom->createElement('items'));
$dom->documentElement->appendChild($dom->createElement('item'))->setAttribute('id', '1');
$dom->documentElement->appendChild($dom->createElement('item'))->setAttribute('id', '2');
echo $dom->saveXML();
А теперь то же самое с использованием qJerry:
q('items')->append('item')->attr('id', '1')->end()->append('item')->attr('id', '2')->dump();
Не трудно видеть, что qJerry позволяет работать с XML гораздо проще, чем DOM, даже в самом тривиальном случае, не говоря уже о сложных манипуляциях с множественными запросами и изменениями дерева XML.
Ну и собственно библиотека: qJerry