Welcome to the Cookbook

loading...

5.5 Request Handling

Zusätzliche Informationen über die HTTP-Requests werden in CakePHP über die RequestHandler-Komponente eingeholt. Durch den tieferen Einblick in die Header kann man u.a. einen AJAX-Request von einem normalen Request unterscheiden, vom Client akzeptierte Content-Typen herausfinden oder auch automatisch das Layout der aktuellen Dateiendung anzupassen, sofern gewünscht.

Der RequestHandler unterscheidet schon standardmäßig AJAX-Requests von normalen Requests, er greift dazu auf den HTTP-X-Requested-With Header zurück, den viele Javascript-Libraries benutzen.

Im Zusammenspiel mit Router::parseExtensions() wird der RequestHandler automatisch das Layout und die View-Files dem gewünschten Typ anpassen - nicht nur das, wenn ein Helper existiert, der den gleichen Namen wie die Dateiendung trägt, wird er der Helper-Liste des Controllers hinzugefügt. Zu guter Letzt: an Controller gepostete XML-Daten werden automatisch in ein XML-Objekt geparst und Controller::data hinzugefügt (was natürlich unter einem Model gespeichert werden kann). Wie gehabt muß die RequestHandler-Komponente über das $components-Array inkludiert werden, um es zu benutzen.

<?php
class WidgetController extends AppController {
    
	var $components = array('RequestHandler');
	
	//Der Rest des Controllers
}
?>
  1. <?php
  2. class WidgetController extends AppController {
  3. var $components = array('RequestHandler');
  4. //Der Rest des Controllers
  5. }
  6. ?>