Generell nach Doppelpunkten suchen und dann prüfen, ob danach ein Leerzichen kommt, geht IMHO nicht. Beispiel dazu ist folgendes
defaults:
Statement
{ _controller: mot.usermap.controller:handle }
, in dem zwei Doppelpunkte vorkommen, einmal hinter
_controller:
und dann hinter der Bezeichnung des Controllers, auf den der Pfad sich bezieht. Der Doppelpunkt hinter dem Controller trennt die aufzurufende Funktion in diesem Controller von der Controller-Bezeichnung, da darf kein Leerzeichen nach dem Doppelpunkt stehen. Deshalb funktioniert diese eigentliche am einfachsten umzusetzende Prüfung nicht. (Die Controller-Bezeichnung ist übrigens die aus der
services.yml
)
Um gleich dabei zu bleiben, laut der Fehlermeldung sind da noch viele andere Bezeichner außer
_controller:
möglich (s. Fehlermeldung), mir ist aber nicht erinnerlich, diese schon mal irgendwo gesehen zu haben, ggf. müsste da ein Array mit diesen Bezeichnern als Prüf-Grundlage dienen.
path:
definiert den Pfadnamen, mit dem dieser Routing-Eintrag z.B. von der Helper-Funktion angesprochen wird und ist einzigartig, er wird auch in der Adresszeile des Browsers ausgegeben, also z.B.
mein-forum/usermap
.
"Slugs" sind die Variablen, die der aufzurufenden Funktion übergeben werden. Nehmen wir folgenden Eintrag in der
routing.yml
:
Code: Alles auswählen
mot_tzv_event:
path: /mot_tzv/event/{id}
defaults: { _controller: mot.tzv.controller.mot_tzv_main:event }
Der "Slug" ist in diesem Falle die Variable
$id
(als "Slug" ohne $), die Funktion ist definiert mit
public function event($id)
. Hinter der Angabe des Controllers und der dort aufzurufenden Funktion kann noch ein Default-Wert für diesen "Slug" definiert werden, z.B.
_controller: mot.tzv.controller.mot_tzv_main:event, id: 0
(was ich in diesem Falle nicht getan habe).
Mit der Angabe
requirements:
kann dann in einer Zeile für jeden "Slug" noch ein regulärer Ausdruck definiet werden, den dieser "Slug" erfüllen muss, z.B.
id: \d+
für die Prüfung auf einen Integer-Wert; hier muss ebenfalls auf ein Leerzeichen nach dem Doppelpunkt geprüft werden, für den Teil vor dem Doppelpunkt müsste ein regulärer Ausdruck verwendet werden, der die in einem Variablennamen erlaubten Zeichen enthält.
Das wenige, was ich weiß (und was phpbb.com veröffentlicht), findest du zum Nachlesen
hier.
Wenn erforderlich, beteilige ich mich gerne an der Umsetzung.
Edit:
Ich habe das doch mal überprüft, und meine erste Bemerkung stimmt so nicht bzw. es meckert weder phpBB 3.3.7 noch phpBB 4.0.0-a1-dev, wenn vor der Benennung der aufzurufenden Funktion ein Leerzeichen steht.
Aber definitiv meckern beide, wenn bei
requirements:
hinter dem Doppelpunkt des "Slugs" und dem regulären Ausdruck kein Leerzeichen steht.