XSLT-Template-Engine

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • XSLT-Template-Engine

    Tag,

    habe hier im Forum schon einige (spärliche beantwortete) Beiträge gefunden, und wollte jetzt mal konkret werden.
    Eine Template-Engine (PHP5) die XML-Dokumente mit dem XSLT-Prozessor pro Abfrage zu HTML konvertiert dachte ich mir. Die XSL-Dokumente werden als temporäre Dateien von PHP erzeugt. Ginge das? Ich hab keine Ahnung wie viel Perfomance das Erzeugen eines XSLT-Prozessors macht aber schneller als ne eigene Template-Engine wirds doch auf jeden Fall sein, oder?

  • #2
    Ginge das?
    Aber sicherlich...

    schneller als ne eigene Template-Engine
    Sicherlich auch - . Vorallem wenn es eine in PHP implementierte ist - und keine z.B. eigene Extension...
    Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

    Kommentar


    • #3
      Solltest aber auch beachten, dass XSLT-Stylesheets meist etwas aufwändiger zu schreiben sind.

      Zum Beispiel eine einfache if-else-Logik muss in XSLT relativ umständlich über <xslt:choose> erzeugt werden.

      Arbeite gerade selber mit XML/XSLT-Formatierung über PHP und habe mir schon öfters gedacht, wie einfach etwas doch mit einer "herkömmlichen" Template-Engine gelöst werden könnte.
      Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

      Kommentar


      • #4
        Jedoch musst du auch beachten, dass es mit XML um ein Vielfaches schneller geht als mit Smarty & Co. Weiterhin ist XML/XSLT ein Standard un von jeder Maschine einfach lesbar, viele andere Sprachen bringen bereits nativ einen Parser und XSL-Prozessor mit und man hat genau die selben Freiheiten wie mit herkömmlichen Template-Engine. Im Gegenteil, sogar mehr: man kann problemlos noch ganz andere Format erzeugen, wie PDF, DocBook oder RTF.

        Ich hab die Engine jetzt einfach mal gebaut und werde sie morgen mal online stellen. Werde auch mal ein paar Benchmarks machen, vielleicht kann der Code hier im Forum mal reviewt werden....

        Kommentar


        • #5
          XSLTemplate-Engine fertig

          Hallo,

          hier wie gesagt im Anhang die Klasse und die zugehörigen PHPUnit Tests. Ich konnte sie in einem beruflichen Projekt schon testen und muss sagen, dass ich fasziniert bin von den Möglichkeiten die mir XSLT in diesem Bereich bietet.
          Es kann an den 2 Opteron-Prozessoren des Servers liegen aber ich finde die Klasse ist sehr schnell, und von den Smarty-Benchmark-Test her zu urteilen sehr viel schneller als die gleichnamige Engine. Außerdem sehen die Templates schöner aus und man kann sie auch noch mit anderen Stylesheet-Prozessoren zum Beispiel in PDF oder andere Formate konvertieren.

          Seht euch doch bitte mal den Code an (kommentiert ist er in phpDocumentor-Format) und sagt mir eure Meinung.

          Grüße

          Kommentar


          • #6
            Re: XSLTemplate-Engine fertig

            Original geschrieben von MaxPayne
            hier wie gesagt im Anhang die Klasse und die zugehörigen PHPUnit Tests.
            Wo denn?

            Kommentar


            • #7
              hoppala *g*
              Angehängte Dateien

              Kommentar


              • #8
                sorry das ich den tread nochmal ausgrabe, aber ich habe gerade mit einer modifizierten version von MaxPayne's xslt-template-enerige Benchmark's gemacht. Bei mir war Smarty ca 50% (!) schneller als xslt.

                als anhang meine testfieles.
                zum probieren könnt ihr die test_xsl.php und test_smarty.php aufrufren.
                bei beiden wird das gleiche generiert.

                mfg Rolandbar
                Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                Kommentar


                • #9
                  bitte löschen
                  Zuletzt geändert von Rolandbar; 13.08.2006, 20:13.
                  Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                  Kommentar


                  • #10
                    ups, anhang vergessen
                    schade beim editieren kann man keine uploads machen.

                    EDIT:

                    ok, ich habe herausgefunden, das es durch das erzeugen von xml durch das domdocument und addchildren eine menge zeit verlohren geht.

                    Angehängte Dateien
                    Zuletzt geändert von Rolandbar; 14.08.2006, 10:54.
                    Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                    Kommentar


                    • #11
                      Hallo,

                      ohne mir deine Test-Dateien jetzt angeguckt zu haben: war Smarty vor einem Jahr schon auf dem "Kompilierungstrip"? Sprich, dass man das Template in dem Smarty-Syntax beschreibt und die Engine daraus ein PHP-Skript erzeugt? Das ist natürlich immer schneller. Aber dann frage ich mich, wozu Smarty lernen?
                      Dann könnte man die PHP-Template-Skripte auch selber schreiben und sie aus einem Funktionskontext heraus aufrufen, da muss ich nicht erst den Smarty-Syntax lernen...

                      Kommentar

                      Lädt...
                      X