Каковы шансы увидеть в ближайшем будущем процессоры XSLT 2.0, такие как saxon для php?
XSLT 2.0 Поддержка PHP. Когда?
- При необходимости вы всегда можете передать обработку XSLT на внешний процессор с поддержкой XSLT 2.0… 04.12.2009
- На мой взгляд, никогда с производительностью XSLT 1.0 процессоры ... Для промежуточного программного обеспечения и обмена данными, как в проекте Gnome, пользователю требуется производительность и выполнение отдельных задач ( как старая проверка DTD и простые фильтры XSLT). Для приложений баз данных (например, с учетом отсутствия xQuery в PostgreSQL) PHP и общедоступные сообщества программного обеспечения должны развиваться и должны оправдывать вложения в открытый исходный код, как показано здесь. 09.01.2013
- Хорошие новости Оформить заказ: stackoverflow.com/a/20275114/36305 13.12.2013
Ответы:
Ближайшем будущем? Никто.
PHP5 полагается исключительно на LibXSLT для обработки XSLT (Sablotron отсутствует), а поддержка XSLT 2.0 отсутствует. в этой библиотеке.
Это не совсем так.
Если вы используете PHP на платформе Windows, то относительно легко настроить расширение для процессора AltovaXML XSLT 2.0 ... http://sourceforge.net/projects/xslt2processor/
Если вы используете PHP в Linux, вам необходимо установить PHP / Java Bridge. Это включает в себя запуск сервлета Java, содержащегося как Apache / Tomcat, и довольно сложный процесс. Существует также относительно сложный гибридный код java / php, необходимый для этой работы. Если интересно, могу выложить подробности.
Наконец, на этот вопрос есть положительный ответ.
Только сегодня доктор Майкл Кей объявил о том, что Saxon / C сильный>.
См. Это для получения дополнительной информации: https://stackoverflow.com/a/20275114/36305
В PHP до сих пор нет поддержки XSLT2.o
, единственный вариант использования XSLT2.0 - это использовать SAXON, основанный на java, и, следовательно, вам потребуется что-то вроде процессора PHP XSLT2.0, см. Эту ссылку: http://sourceforge.net/projects/xslt2processor/
XML_XSLT2Processor
- это класс PHP, который позволяет выполнять преобразования XSLT 2.0 в PHP с помощью SAXON или AltovaXML.
На PHP есть транспилятор XSL 2.0 с открытым исходным кодом, который можно найти на github.
Также Saxon / C версии 1.0.0 поддерживает XSLT 2.0 / 3.0 на C / C ++ и PHP был выпущен.
PHP использует LibXML2 для реализации всех классов XML. Это очень быстро и стабильно, но сегодня (2013 г.) поддерживает только XPath1 и XSLT1 ... Возможно, сообществу нужно только это более быстрое и простое решение, а не нужны возможности XSLT2 em > (см. вариант 0).
option0: попробуйте использовать лучшее разделение MVC!
... Многим шаблонам, используемым в качестве View в контексте MVC, не нужны возможности XSLT2: см. хорошее объяснение почему. Посмотрите, как в некоторых хороших PHP-проектах используется XSLT1
option1: попробуйте неосновную реализацию
Как показал @collapsar в этом аналогичном вопросе, существует открытый исходный код, разработанный для расширения классического LibXML2 с некоторыми возможностями XSLT2 и XPath2. См. http://www.explain.com.au/libx/.
Сообщество PHP еще не мотивировано для завершения этой эволюции ... Почему? Может просто боится потерять некоторую производительность и стабильность. Может быть, просто нехватка рабочей силы для выполнения задачи, в основном в драйвере PHP.
option2: наделить XSLT1 или XPath1 функциями / связями PHP
См. Здесь пример обычного обходного пути путем регистрации функций PHP в XPath1 или XSLT1. Я использую это решение в своих проектах.