Hubert

Controller

Controller legen wir im Ordner src/controller ab. Als Konvention müssem Controller-Namen auf Controller.php enden und darin enthaltene Action-Funktionen müssen auf Action enden. Für unser Beispiel legen wir die Datei src/controller/indexController.php an:

<?php

namespace src\controller;

class indexController extends \hubert\generic\controller {

    public function indexAction($params){
        return $this->responseTemplate("index/index", ["name" => "Hubert"]);
    }

    public function apiAction(){
        $data = ["users" => ["Falk", "Ronny"]];
        return $this->responseJson($data);
    }

    public function redirectAction(){
        $home_route = hubert()->router->get("home");
        return $this->responseRedirect($home_route);
    }

}

Controller erben Eigenschaften von \hubert\generic\controller oder du implementierst selbstständig das Interface hubert\interfaces\controller. Über $this->getResponse() steht das Response-Objekt und über $this->getRequest() steht das Request-Objekt zur Verfügung. Controller müssen ein Response Objekt zurückgeben. Um dieses mit Daten zu befüllen stehen drei Funktionen zur Verfügung: