XSLT 2.0 PHP desteği.

5 Cevap php

Yakın gelecekte php için Sakson gibi XSLT 2.0 işlemcileri görmek için şansı nedir?

5 Cevap

Yakın gelecekte? Yoktur.

PHP5 (Sablotron dışında) XSLT işleme için LibXSLT münhasıran dayanır, ve bu kütüphanede XSLT 2.0 desteklemek için hiçbir plan yoktur.

Bu tamamen doğru değildir.

Eğer Windows platformunda PHP çalışıyorsa, o zaman nispeten kolay AltovaXML XSLT 2.0 işlemci uzantısını yapılandırmak için ... http://sourceforge.net/projects/xslt2processor/ var

Linux üzerinde PHP çalışıyorsa, o zaman bir PHP / Java Bridge yüklemeniz gerekir. Bu Apache / Tomcat gibi bulunan bir Java servlet çalışan içerir ve oldukça karmaşıktır. Bu işi yapmak için gerekli olan bazı nispeten karmaşık melez java / php kodları var. Eğer ilgileniyorsanız, daha fazla ayrıntı ekleyebilirsiniz.

Finally, there is a positive answer to this question.

Sadece bugün, Dr Michael Kay Saxon/C duyurdu.

Daha fazla bilgi için Bu bakınız: http://stackoverflow.com/a/20275114/36305

PHP bugüne kadar hiçbir XSLT2.o desteği vardır, XSLT2.0 kullanmak için tek seçenek java tabanlı olduğu SAXON kullanmak ve dolayısıyla PHP XSLT2.0 işlemci gibi bir şey olacak, bu linki görürsünüz: http://sourceforge.net/projects/xslt2processor/

XML_XSLT2Processor is a PHP class that allows you to perform XSLT 2.0 transformations within PHP by using SAXON or AltovaXML.

PHP tüm XML sınıfları uygulamak için Libxml2 kullanın. Bu çok hızlı ve kararlı olduğunu, ancak bugün (2013) sadece XPath1 ve XSLT1 ... Perhaps topluluk sadece bu hızlı ve basit bir çözüm gerekmez, ve not need the powers of XSLT2 ("option0" bakın) destekler .

option0: try to use better MVC separation!

... A MVC bağlamda View olarak kullanılan birçok şablonlar, not need the powers of XSLT2, bkz good explanation why. Bazı iyi PHP projeler XSLT1 nasıl kullandığını görün

option1: try a non-mainstream implementation

As showed by @collapsar at this similar question there are a open source developed to extend the classic LibXML2 with some powers of XSLT2 and XPath2. See http://www.explain.com.au/libx/

Bu evrimi tamamlamak için henüz motive değil PHP topluluğu ... Neden? Belki bazı performans ve istikrar kaybetmekten korkuyor. Maybe just a lack of manpower to complete the task, esas olarak bir PHP sürücüsü.

option2: empower XSLT1 or XPath1 with PHP functions/conections

Bir örneğe bakın usual workawound here, by registering PHP functions into XPath1 or XSLT1. Ben projelerde bu çözümü kullanıyorum.