Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
final function getCode() {
return $this->code;
}
final function getFile() {
return $this->file;
}
?>
XML
После изменения объектной модели самым существенным инновациям (на мой взгляд) подверглась работа с XML. В PHP 4 поддержка данных технологий была довольно разнородной, если не сказать бестолковой. Для использования XSTL была необходима библиотека Sablotron, для SAX – Expat и, наконец, для полноценной работы с DOM – библиотека libxml2. Причём в последнем случае имели место многочисленные ошибки, утечки памяти и несоответствие API стандартам W3C (впрочем, это был наименее болезненный пункт).
С появлением PHP 5 всё радикально изменилось. Все вышеперечисленные расширения (и два новых, о которых речь пойдёт ниже) теперь основаны на libxml2, расширение DOM полностью соответствует стандартам и поддерживает три вида схем для проверки (валидации XML-документов: DTD, XML Schema и RelaxNG. SAX-расширение можно заставить работать под старой библиотекой Expat для совместимости со старыми приложениями, пересобрав PHP с соответствующей опцией, но в большинстве случаев такие ухищрения не понадобятся (как, собственно, и сам SAX, но это уже моё личное мнение).
Особенность работы с XSLT (также основанной на libxml2) теперь состоит в том, что XSL-преобразование не принимает таблицу стилей XSLT в качестве параметра, а зависит от расширения DOM. Таблица стилей теперь может кэшироваться в памяти и применяться ко многим документам без дополнительной загрузки.
В общем, подытоживая, можно сказать, что, совсем чуть потеряв, мы получили довольно много, а именно, наконец-то стабильно работающую реализацию DOM.
Теперь о новинках. Появились два новых XML-расширения – SampleXML и SOAP (Simple Object Access Protocol). Вообще-то каждое из них заслуживает отдельного разговора, но если быть кратким, то первое – это прозрачное представление XML-документа как родного объекта PHP. Что особенно ценно в случае невозможности (в силу ограничений данного расширения) выполнить какие-либо действия, всегда сохраняется шанс, преобразовать объект SampleXML в дерево DOM, выполнить необходимые действия и вернуться обратно, к SampleXML (функции dom_import_() и simplexml _import_dom () соответственно). Оба расширения реализованы в одной библиотеке, и переключения между ними теперь, по крайней мере, безболезненны.