Поддержка xml была обеспечена для php практически сразу. Поддержка изначально была исключительно SAX интерфейса, однако уже на основе этого появлялась возможность разбора любого документа xml без сложностей.
Поддержка xml в дальнейшем была основана на расширении domxml, которое было представлено в версии php 4. В основе данного расширения находилась поддержка XSLT, HTML, а также проверка по DTD. Однако расширения domxml и xslt так и остались в итоге экспериментальным проектом, многократно производилась смена интерфейса. Не была предусмотрена компиляция по умолчанию, часто они просто не устанавливались.
Также не был реализован стандарт DOM расширением domxml – стандарт является требованием оганизациии W3С, вместо него в расширении использовалась своя система по именованию методов. Предпринимались попытки исправления подобной проблемы, но стабильность ему обеспечить так и не удавалось. И лишь для расширения, которое реализовало SAX интерфейс, была предусмотрена компиляция по умолчанию. В результате разработчики php, которые занимались вопросами xml php5, приняли решение обеспечить соответствие стандартам, для чего потребовалась работа практически с чистого листа.
Проводилась переработка в версии php 5 практически всего, что относилось к работе с xml. В результате в работе новых расширений использовалась привлекательная библиотека libxml2, которая достойно зарекомендовала себя в рамках проекта GNOME. В результате отлично взаимодействуют разные расширения xml, поскольку использовалась единая базовая библиотека. К примеру, потребовалась реализация улучшенного управления памятью для всех расширений xml лишь один раз. Это было важно разработчикам, поскольку экономит время и силы обычных программистов. Также не была забыта и SAX – модель, которую наследовали из прошлой версии. Обеспечена поддержка DOM, а также соответствие существующим стандартам XSLT и W3C за счет оперативного процессора libxstl.
Также было принято решение включить в PHP и Simple XML – довольно специфичное расширение для этого языка программирования. Значительно было улучшено и расширение SOAP. Среди текущих сложностей следует отметить обязательное прямое включение SOAP и . XSLT при компиляции. Разработчики php давно осознали необходимость качественной поддержки xml, поэтому работа в данном направлении не прекращается. Смежные отделы занимаются разработкой и другого расширения – mysqli, появляется больше возможностей при mysql транзакции, но с этой информацией рекомендуем ознакомиться вам на основе других статей.