dave: Templatesystem: string- oder objektorientiert

Hallo,

ich habe eine grundsätzliche Frage:

Ist es schneller wenn ich ein Templatesytem stringbasierd oder objektbasierend erstelle?
Siehe Beispiele

Beispiel Stringbasierend:
//Template
<html><head><title><#TITEL#></titel>...
//PHP
$temp = file_get_contents('template.html');
$output = str_replace('<#TITEL#>', 'Titel der Website', $temp);

Beispiel Objektbasierend:
...
function setTitel($titel) {
  $this->titel = $titel;
}

//Gibt fertiges Template als HTML-String zurück
function output() {
   return '<html><head><title>'.$this->titel.'</titel>...';
}

  1. hi,

    Ist es schneller wenn ich ein Templatesytem stringbasierd oder objektbasierend erstelle?

    Erst mal würde ich mich fragen, ob ich überhaupt ein Templatesystem brauche.

    PHP ist doch bereits eine Sprache, mit der du Datenhaltung/Verarbeitung und Ausgabe als HTML sehr gut und mit etwas Know-How auch übersichtlich kombinieren kannst - wozu da noch eine zusätzliche Schicht einziehen, die das ganze per Definition langsamer und unperformanter machen muss ...?

    "Meine Template-Engine für Sachen nicht exorbitanter Größenordnung heißt define & sprintf."

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      vielen Dank für die rasche Antwort.

      Und wie arbeitest du bei

      exorbitanter Größenordnung

      ?

      Grüße
      dave

      1. hi,

        Und wie arbeitest du bei

        exorbitanter Größenordnung
        ?

        Sowas hatte ich bisher noch nicht :-)

        Aber wenn, dann würde ich schon schauen, was es bereits auf dem Markt gibt - die Entwicklungszeit, die in bekannten Lösungen wie Smarty & Co. steckt, würde ich ja nicht noch mal von neuem aufwenden wollen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. echo $begrüßung;

    Ist es schneller wenn ich ein Templatesytem stringbasierd oder objektbasierend erstelle?

    Eigentlich ist PHP bereits ein Templatesystem ...

    Der Aufruf von Funktionen wird vor allem Zeit kosten, denke ich mir. Aber probier das doch einfach mal aus. Hier ein kleines Mess-Script:

    <?php  
    $loop = 1000;  
      
    $begin = microtime(true);  
      
    for ($i = 0; $i < $loop; ++$i) {  
      //test1  
    }  
      
    $stopover = microtime(true);  
      
    for ($i = 0; $i < $loop; ++$i) {  
      //test2  
    }  
      
    $end = microtime(true);  
      
    echo number_format($stopover - $begin, 6) . ' - ' . number_format($end - $stopover, 6);  
    ?>
    

    Bitte entsprechend modifizieren und mehrmals laufen lassen. Moderne Rechner machen Multitasking und dabei kann schon mal der gleiche Code unterschiedlich lange laufen.

    echo "$verabschiedung $name";