dedlfix: Request Handling

Beitrag lesen

echo $begrüßung;

» Ja, der Front Controller ist die Instanz, die alle Requests einer Anwendung (außer statischen Ressourcen) entgegennimmt und zwecks Ausführung passend delegiert.
Wobei der Front-Controller sich in PHP darauf beschränken kann festzustellen, ob es überhaupt Steuerinformationen gibt, oder ob die ressource generisch angefordert wurde.

Auch ein GET / HTTP/1.1 enthält Steuerinformation. (Wie man daraus ermittelt, dass die Index-Action des Home-Controllers aufzurufen ist, steht auf einem anderen Blatt.) Was du allerdings mit generisch angeforderten Ressourcen meinst, weiß ich nicht.

In einer Sprache, die Superglobale Variablen kennt, gibt es keine starke Trennung zwischen VCM (View - Controller - Model, in der Reihenfolge der Inanspruchnahme).

Auch hier entzieht es sich meinem Verständnis, was du für einen Einfluss von superglobalen Variablen auf das MVC-Muster siehst. Auch gibt es zwischen M, V und C keine Reihenfolge. Es ist eher ein unten offenes Dreieck. Oben steht der Controller, der Daten zwischen Model und View vermittelt, wobei auch noch das Model optional ist.

Außerdem ist der Controller in einer Client-Server-Applikation zweigeteilt und man müsste nun erst entscheiden, welcher Teil des Controllers benutzt wurde. Der des Servers überwacht übrigens den des Clients bei Kommunikationsrichtung Client -> Server und macht ihm Vorgaben bei Kommunikationsrichtung Server -> Client.

Der Client ist uninteressant. Die Kommunikationsströme zwischen Client und Server sind in einer weiter oben gelagerten Schicht angesiedelt, die für die derzeitige Betrachtung keine Rolle spielt. Für den Webserver gibt es einen Request und ein Response. Auch gelangt der Request nicht direkt zum einem ActionController. Der FrontController, der gern für das Vermitteln der Requests verwendet wird, ist kein Bestandteil des MVC-Patterns.

» Niemand schreibt vor, wie man den Routingmechanismus implementieren muss.
Aber die OOP schreibt vor, dass es diese imperative Vorgehensweise zugunsten der Selbstbestimmung der freien Objekte nicht mehr gibt! ( es war gerade 1. Mai *gg* ).

Was du meinst ist die Anarchie der Wald- und Wiesenscripte. Der FrontController jedenfalls ist Diktatur.

Kombiniert man PHP-OOP und die Superglobalen Variablen optimal und vergisst nicht, dass ein Script nicht ewig lebt[1], wird der Code plötzlich superschlank und beschränkt sich auf die Abbildung der fachlichen Hierarchie. Alles andere regeln die Objekte selber.

Es gibt immer Alternativen, auch zum MVC-Pattern. Die Frage ist nur, wie man sein Projekt strukturiert. Pattern sind die Beschreibung einer Vorgehensweise. Man braucht keine OOP um sie zu implementieren. Man muss sie auch nicht unbedingt kennen. Ein switch in der index.php, auf die per mod_rewrite alle Requests geleitet werden, und das die Abarbeitung an einzelne Scripte delegiert, ist bereits ein FrontController.

echo "$verabschiedung $name";