HTML, PHP, Templates & Klassen

roka6803

Grünschnabel
Hallo alle zusammen,

erstmal wünsche ich euch fröhliche Weihnachten, schöne Feiertage und einen Guten Rutsch ins nächste Jahr!

Ich habe mir, da ich momentan Urlaub habe, vorgenommen mich wieder mal PHP zu beschäftigen. Als Ziel habe ich mir das vollständige Erstellen einer einfachen Template-parsenden Klasse gesetzt.

Nach dem Studium mehrerer Tutorials zum Thema habe ich sozusagen "selbstständig" mit der Arbeit begonnen.

Folgendes kam dabei heraus:
PHP:
<?php

// die Template-parsende Klasse

class roka {
    
    //benötigte Variablen
    var $template;
    var $template_out;
    
    //Funktion zum Laden der Template-Datei
    function laden($filename) {
        $temp = fopen($filename, 'r');
        $this->template = fgets($temp, 4096);
        fclose($temp);
        }
        
    //Funktion zum Ersetzen der Platzhalter
    function ersetzen() {
        $this->template_out = str_replace('platzhalter', 'platztext', $this->template);
        }
        
    //Funktion zur Ausgabe des geparsten Templates
    function ausgeben() {
        echo $this->template_out;
        }
    
}

?>

"Ich weiß, es ist einfach gestrickt, aber für den Anfang...."

Die eigentliche "PHP-Datei" sieht folgender Maßen aus:
PHP:
<?php

include ("./tpl_class.php"); 

$tpl = new roka;

$tpl->laden("template.tpl");

$tpl->ersetzen();

$tpl->ausgeben;

?>

In meinem Template steht einfach nur:
PHP:
platzhalter

Momentan stehe leider "auf'm Schlauch". Wenn ich die "PHP-Datei" unter meiner Testumgebung (XAMPP unter Mac OS X) "teste" sehe ich rein garnix. Leider habe ich keine Ahnung wo der Fehler stecken könnte.
Auch wenn ich für jede Hilfe dankbar bin, wünsche ich keine Links zu irgendwelchen Tutorials oder Kommentare wie "....nimm doch Smarty".

Mit Dank für eure Bemühungen verbleibe ich

Mit freundlichen Grüßen

RoKa6803
 
Hallo Gumbo, entschuldige, wenn ich das so sage, aber leider kann ich mit deiner Antwort nichts anfangen. Ich wäre über eine genauere Ausführung deiner "Idee" seiner erfreut. Mit freundlichen Grüßen RoKa6803
 
Das „$tpl->ausgeben“ beschreibt das „ausgeben“-Attribut des „$tpl-Objekts. Deine Klasse besitzt allerdings nur eine Methode desselben Namens. Der Aufruf müsste also „$tpl->ausgeben()“ lauten.
 
Zurück