Supporto PHP XSLT 2.0. Quando?
Domanda
Quali sono le possibilità di vedere processori XSLT 2.0 come saxon per php nel prossimo futuro?
Soluzione
Nel prossimo futuro? Nessuno.
PHP5 si basa esclusivamente su LibXSLT per l'elaborazione XSLT (Sablotron è fuori) e non è previsto alcun piano supporta XSLT 2.0 in questa libreria.
Altri suggerimenti
Questo non è del tutto vero.
Se si esegue PHP sulla piattaforma Windows, esiste un'estensione relativamente facile da configurare per il processore AltovaXML XSLT 2.0 ... http://sourceforge.net/projects/xslt2processor/
Se stai eseguendo PHP su Linux, dovrai installare un PHP / Java Bridge. Ciò comporta l'esecuzione di un servlet Java contenuto come Apache / Tomcat ed è piuttosto coinvolto. C'è anche un codice java / php ibrido relativamente complesso necessario per far funzionare tutto questo. Se sei interessato, posso pubblicare maggiori dettagli.
Infine, c'è una risposta positiva a questa domanda .
Proprio oggi, il Dr. Michael Kay ha annunciato Saxon / C .
Vedi questo per maggiori informazioni: https://stackoverflow.com/a/20275114/36305
Non esiste alcun supporto XSLT2.o
fino ad ora in PHP, l'unica opzione per usare XSLT2.0 è usare SAXON che è basato su Java e quindi dovrete qualcosa come PHP XSLT2.0 processore, vedi questo link: http://sourceforge.net/projects/xslt2processor/
XML_XSLT2Processor
è una classe PHP che ti consente di eseguire XSLT 2.0 trasformazioni all'interno di PHP usando SAXON o AltovaXML.
Esiste un transpiler XSL 2.0 open source in PHP che può essere trovato su github
Anche Saxon / C versione 1.0.0 che supporta XSLT 2.0 / 3.0 su C / C ++ e PHP è stato rilasciato .
PHP usa LibXML2 per implementare tutte le classi XML. È molto veloce e stabile, ma oggi (2013) supporta solo XPath1 e XSLT1 ... Forse la comunità ha bisogno solo di questa soluzione più rapida e semplice e non ha bisogno dei poteri di XSLT2 (vedi " opzione0 ").
opzione0: prova a usare una migliore separazione MVC!
... Molti modelli, usati come Visualizza in un contesto MVC, non hanno bisogno dei poteri di XSLT2 : vedi buona spiegazione del motivo . Scopri come alcuni buoni progetti PHP stanno usando XSLT1
opzione1: prova un'implementazione non tradizionale
Come mostrato da @collapsar a questa domanda simile lì sono un open source sviluppato per estendere il classico LibXML2 con alcuni poteri di XSLT2 e XPath2. Vedere http://www.explain.com.au/libx/
La community di PHP non è ancora motivata a completare questa evoluzione ... Perché? Forse ho solo paura di perdere prestazioni e stabilità. Forse solo una mancanza di manodopera per completare l'attività , principalmente in un driver PHP.
opzione2: abilita XSLT1 o XPath1 con funzioni / connessioni PHP
Vedi l'esempio di lavoro abituale svolto qui, registrando le funzioni PHP in XPath1 o XSLT1 . Sto usando questa soluzione nei miei progetti.