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 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.