Routing
Mapping von HTTP-Parametern
Alle Engine.php-Controller erhalten automatisch alle eingehenden HTTP-Parameter (GET und POST). Die Werte werden anhand des Namens auf die Signatur gemapped. Dabei ist zu beachten, dass die Annotations korrekte Typisierungen enthalten.
/**
* @param int $max
*/
public function index($max) {
echo $max;
}
// admin?max=string
// ...gibt 0 aus
// admin?max=5
// ...gibt 5 aus
CSRF-Tokens beachten
CSRF-Tokens werden beim Laden einer Seite generiert und werden bei Ajax-POST-Requests automatisch an jeden Request gehängt. Ohne eine gültigen CSRF-Token wird der Execute-Controller nicht ausgeführt. Lesen Sie hier mehr.
Wie kann ich auf Features in anderen Plugins zugreifen?
Um Zugriff auf fremde Plugins zu erhalten bieten die Controller-Abstracts zwei Methoden, die wir nachfolgend näher beschreiben.
Benennung von Requests
Bei Methoden, die per lowerCamelCase
benannt sind, ergibt sich für den HTTP-Request eine Notation die sich an Pfaden orientiert. Hier: lower/camel/case
Wird dies nicht beachtet kommt es womöglich zu Fehlern bei der Verarbeitung von Rollen & Rechten.
staticController()
Mit dieser Methode stellen Sie eine indirekte Verbindung zu einer anderen Controller-Klasse her. Das Objekt wird automatisch instanziiert. Man hat anschließend Zugriff auf alle Methoden dieses Objekts.
/**
* @param int $max
* @return array
*/
public function index($max) {
return $this
->staticController(Lib\Request\Index::class)
->request($max)
;
}
Eventübersicht
Klassenname | Beschreibung |
---|---|
OnIdentifyRoute | Wird beim Auflösen der Route ausgelöst. Es kann damit auf eine andere Route geleitet werden, indem man ein neues |
OnPopulateParams | Wird verwendet, um Informationen an das Ereignisprotokoll zu übergeben |