Teil 3 Der Controller (MVC)

Der Controller übernimmt die Steuerung Ihres eigenen Content Management Systems, er steuert die Verarbeitung.

Inhalt

Der Controller des MVC-Patterns

Der Controller ist eine der zentralen Steuereinheiten Ihres eigenen Content Management Systems im MVC-Pattern. Er regelt den Datentransport, nimmt User-Requests entgegen und startet die Anzeige der Webseite im Browser des Lesers. Der Controller koordiniert folglich die übergreifende Zusammenarbeit der einzelnen Komponenten des MVC-Pattern.

MVC Design MVC Design Pattern: Der Controller

Wie im vorangegangenen Kapitel schon angedeutet, ist die Kapitelbeschreibung index.md und die Beitragsdatei beitrag.md intern vollkommen identisch aufgebaut, daher muss nicht mit unterschiedlichen Controllern auf den Request reagiert werden und ein gemeinsamer Controller kann die Arbeit leisten. Der Controller ist sehr übersichtlich gehalten und arbeitet alle Anfragen bereits im Konstruktor __construct() ab.

class Controller
{
    public $model;
    public $view;

    function __construct($url)
    {
        $this->model = new Model($url);
        $this->view  = new View();

        $this->view->set('{logo}',        $this->model->logo);
        $this->view->set('{title}',       $this->model->title);
        $this->view->set('{description}', $this->model->description);
        $this->view->set('{content}',     $this->model->content);

        $this->view->display('basic');
    }
}

Der Controller

Der Controller erhält aus der index.php die URL des Aufrufs und generiert das Model welches wiederum die passenden Daten ermittelt. Die bereits initiierte View wird mit den Template-Tokens und deren Inhalten aus dem Model gesetzt ($this->view->set()). Zum Schluss weist der Controller die Anzeige des Templates über das View-Objekt mit $this->view->display() an.

Den Controller bekannt machen

Damit der Controller seine Arbeit auch aufnehmen kann, muss er dem System bekannt gmeacht werden. Im Startscript index.php wird der Controller mit:

require_once('core/mvc/Controller.php')

Controller dem System bekannt machen

in den Arbeitsspeicher geladen und kann dann angesprochen werden, denn er wird in index.php mit dem folgenden Statement angesprochen:

$categorie = new Controller($url.'/index.md');

Controller Instanz erzeugen

und ein Controller-Objekt erzeugt. Dem Objekt wird sofort die passende URL mitgegeben und der Controller ruft das Model, welches um die Datenbeschaffung aus der URL kümmert. Hat das Model alle Daten aus der Datei zusammengesammelt, kann der Controller diese an die View übergeben, die dann das Template läd und Inhalte aus der Date in das Template füllt. Der Controller weist dann die Anzeige des Ergebnis im Browser des Lesers an.


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