Teil 5 Die View (MVC)

Die View zeigt die Daten des CMS im Browser-Fenster des Lesers an.

Inhalt

Die View des MVC-Models

Die View ist dafür verantwortlich, das HTML-Template mit den Content-Daten aus dem Model zu füllen, dabei werden die im Template hinterlegten Template-Token durch den Inhalt aus der Beitragsdatei ersetzt. Folglich wird der Template-Token {$title} mit dem Titel des Artikels aus der Beitragsdatei ausgetauscht.

MVC Design MVC Design Pattern: Die View

In dieser Version Ihres eigenen Content Management Systems, gibt es lediglich eine einzige View, die alle Dateien, egal ob Beitrag oder Kategorie, nach dem selben Schema verarbeitet und das Ergebnis des Parsings an den Controller zurück gibt, etwa so:

class View
{ 
    public $token_name;
    public $token_content;

    function display($template)
    {
        $template = str_replace(
            $this->token_name, 
            $this->token_content, 
            file_get_contents('templates/'.$template.'.template'));
        echo $template;
    }

    function set($token, $content) 
    {
        $this->token_name[]    = $token;
        $this->token_content[] = $content;
    }
}

Die View

Wie im Controller beschrieben, wird die View dort als Objekt instanziert. Die View öffnet das HTML-Template basic.template und ersetzt die Inhalte {...} mit den entsprechenden Daten aus dem Model. Für das Mapping von Dateninhalt auf die Template-Tokens, werden die beiden Arrays $token_name und $token_content durch den str_replace() ausgetauscht.

In der aktuellen Version des kleinen Beispiel-CMS übernimmt der PHP-Befehl str_replace() durch ein cleveres Mapping der beiden Arrays das Parsing der HTML-Token mit dem Dateninhalt. Soll später die sehr populäre Template-Engine Smarty verwendet werden, dann ist genau dies die Stelle, an der diese eingehängt werden sollte. Aber auch die Verwendung der Template-Engine Twig ist ebenfalls leicht möglich. Durch die Verwendung einer externen Template-Engine ist es dann auch möglich, mehr Logik in das Template unterzubringen (sofern dies gewünscht ist).


Oliver Lohse
2024-02-12
ein eigenes CMS entwickeln programmieren
post
0