О библиотеке 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 собрать несколько XML-файлов в единую XHTML-страницу, подчиняющуюся стандартам и поддерживающую несколько языков.
В ближайшем будущем на основе этого примера будет подготовлен подробный обучающий материал.
Наверх ↑
Документация по qJerry
Исходный текст библиотеки достаточно полно документирован. К вашим услугам автоматически сгенерированный с помощью утилиты phpDocumentor справочник по API qJerry с примерами. Этот справочник также включён в архив с библиотекой для оффлайнового просмотра.
- Справочник API (на английском).
Наверх ↑
Список TODO
Планы на ближайшие релизы:
- добавить поддержку атрибутов;
- добавить поддержку пространств имён XML;
- внедрить автоматическое тестирование;
- написать больше примеров;
- довести до ума англоязычную страницу и откорректировать справочник API.
Наверх ↑
Лицензия
qJerry распространяется под свободной лицензией GNU Lesser General Public License (LGPL).
Наверх ↑
Контактная информация
Автор и мейнтейнер библиотеки — Евгений Остапенко.
Свои вопросы, отзывы, пожелания и критику отправляйте электронной почтой по адресу qjerry.com_УХО_gmail.com.
Наверх ↑
Ссылки на другие ресурсы
- http://jquery.com/ — сайт библиотеки jQuery;
- http://php.net/ — PHP Hypertext Preprocessor.
Наверх ↑