HeaderManager

Zweck des HeaderManager ist es HTTP-Header an den Client zu senden. Die Klasse stellt sicher, dass durch den LinkGenerator generierten URLs verwendet werden können.

Dem Entwicker folgende (statische) Methoden zur Verfügung:

  • forward(): Leitet zur angegebenen Ziel-URL weiter.
  • redirect(): Leitet den Benutzer zur angegebenen Seite um. Es ist dabei möglich permanente und vorrübergehende Weiterleitungen zu tätigen.
  • send(): Die Methode send() ist eine generische Methode, mit der alle HTTP-Header (z.B. content-type, o.ä.) gesendet werden können. Siehe hierzu auch www.faqs.org/rfcs/rfc2616.

Die folgende Code-Box zeigt die häufigste Anwendung:

PHP-Code
use APF\tools\http\HeaderManager; use APF\tools\link\LinkGenerator; use APF\tools\link\Url; $link = LinkGenerator::generateUrl( Url::fromCurrent()->mergeQuery(array('param1' => '','param2' => 'new_value')) ); HeaderManager::forward($link);

Die beiden Methoden forward() und redirect() brechen die weitere Code-Abarbeitung mit einem exit() ab um Code-Injection zu verhindern (siehe Overview of Execution After Redirect Web Application Vulnerabilities).

Um dieses Verhalten in Unit-Tests abschalten zu können, bietet der HeaderManager die Methoden deactivateExitAfterForward() und activateExitAfterForward() um das Verhalten global aus, bzw. ein zu schalten.

Um innerhalb eines konkreten Aufrufs von forward() oder redirect() einen Abbruch zu erreichen, lassen sich die optionalen Parameter $exitAfterForward auf false setzen.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
« 1   »
Einträge/Seite: | 5 | 10 | 15 | 20 |
1
Christian 07.05.2011, 12:00:44
Hallo dave,

danke für den Hinweis, ist korrigiert.
2
dave 24.02.2011, 16:05:27
Kleiner Fehler: In der dritten Zeile fehlt das Semikolon (;) am Ende der Zeile.