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.
Codeblock | ||||
---|---|---|---|---|
| ||||
/** * @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.
Codeblock | ||||
---|---|---|---|---|
| ||||
/** * @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 \Brandbox\Framework\Brandbox\Composer\EntityPackageFeature definiert. |
OnPopulateParams | Wird verwendet, um Informationen an das Ereignisprotokoll zu übergeben |