hotti: Name für Entwurfsmuster - FrontController (Martin Fowler)

Beitrag lesen

Hakuna matata!

aus http://framework.zend.com/manual/1.12/de/zend.controller.front.html

Praktisch eine Neuerfindung des Apache-ResponseHandlers ;)

Nein, das ResponseHandler-Interface definiert eine _clientseitige_ Schnittstelle, um auf _eingehende_ Antworten eines HTTP-Servers zu reagieren. Deshalb ist sie auch in dem Paket org.apache.http.client definiert.

CGI-Standard: Das G steht für Gateway, die Strecke zwischen Webserver und einem weiteren serverseitigem Prozess (Perl, PHP, ...). Letzterer ist ein freilich Client, der mit dem Webserver kommuniziert, war schon immer so, nüschd Neues ;)

Der Front Controller hingegen ist etwas, was man auf dem Server antrifft und man versteht ihn am besten einfach als Eintrittspunkt für die Webanwendung, die dann _serverseitig_ ausgeführt wird.

CGI-Standard: Der Front-Controller (Perl, PHP, ...) kommuniziert mit dem Webserver. Der Webserver liefert z.B. einen HTTP Status 504 Gateway Timeout, wenn er von dem ihm zugeteiltem weiteren Serverprozess (Perl, PHP, ...) in einer im Webserver/CGI-Schnittstelle konfigurierten Zeit keine Antwort bekommt, die lt. CGI-Standard ein Webserver in STDIN (1) erwartet.

Apache-ResponseHandler definiert die IO-Kapselung (2) und ist ansonsten nur ein anderer Name für die CGI-Schnittstelle.

  1. mod_cgi: Der Frontcontroller schickt Header und Message-Body nach STDOUT (print, printf, echo, ...)
  2. mod_perl: PerlResponseHandler, FC bedient sich einer Apache2::RequestIO-Instanz zum Senden von Header und Message-Body ($r->content_type, $r->header_out, $r->print, ...)

Schöne Grüße.