Hubert

PSR-7

Wie Ihr in den Routes gesehen habt, bekommen deren Ziel-Funktionen die Variablen $request und $response übergeben:

"mvc" => array(
   "route" => "/[:controller]/[:action]",
   "method" => "GET|POST",
   "target" => function($request, $response, $args){
        echo "Controller: {$args['controller']}, Action: {$args['action']}";
    }
),

Dies sind standardisierte Objekte nach PSR-7 Standard. Hubert verwendet hierbei die PSR-7 Implementation von Zend. Hier ein kleines Beispiel zur Verwendung.

"test" => array(
    "route" => "/test",
    "method" => "GET|POST",
    "target" => function($request, $response, $args){
        $get_params = $request->getQueryParams();
        $html = "Get Params: ".print_r($get_params, true);
        $response->getBody()->write($html);
        return $response;
    }
),

Ruft man zum Beispiel die Url /test?name=hubert auf, gibt diese Route "Get Params: Array("name" => "hubert")" zurück. Hubert erwartet standardmäßig von jeder Route ein PSR-7 Response-Objekt zurück. Dieses wird dann ausgegeben. Aus Kompatiblitätsgründen können Routen aber auch gar nichts oder aber auch einen String zurückgeben. Die Server-Anfrage steht auch global über hubert()->request zur verfügung.