Warum erzwingt Magento 2, dass URLs mehr als 3 Zeichen enthalten?

9

Wenn Sie versuchen, ein Modul mit einem hello-worldFrontnamen wie in Magento 2 zu erstellen , wird eine Fehlermeldung angezeigt, die so aussieht .

Invalid XML in file /Users/alanstorm/Sites/magento-2-with-keys/magento2/app/code/Pulsestorm/HelloPestle/etc/frontend/routes.xml:
Element 'route', attribute 'id': [facet 'pattern'] The value 
'hello-world' is not accepted by the pattern '[A-Za-z0-9_]{3,}'.

Es scheint, dass Magento keine URL-Frontnamen möchte, die etwas anderes als eine Zahl, einen Buchstaben oder einen Unterstrich enthalten. Außerdem werden Frontnamen gezwungen, drei oder mehr Zeichen zu haben.

Die Einschränkung von Anzahl, Buchstabe und Unterstrich ist sinnvoll, da eine Routen-ID zum Erstellen eines Layout-Handles verwendet wird und " Sonderzeichen " dort ein Problem verursachen können. Die Beschränkung auf drei Zeichen ist jedoch verwirrend.

Kennt jemand den Grund dafür?

Alan Storm
quelle
Möglicherweise liegt dies an den vorhandenen XSD-Validierungen.
Bhargav Mehta
2
@Bhargav Ja, aber warum ist die XSD so konfiguriert?
Alan Storm

Antworten:

4

Der Grund war, unordentliche Deklarationen mit zu kurzen Bezeichnern zu vermeiden (genauso wie zu kurze Variableneinschränkungen in PHP-Code-Stil-Analysatoren).

Es wurde auf mehrere Feldtypen angewendet. Der Name der Routenfront weist diese Einschränkung versehentlich auf. Es wird behoben

Anton Kril
quelle
0

Ändere die Hallo-Welt als Hallo-Welt

Gültige Zeichen sind Alphabet, numerisch und _

Sankar Venkat
quelle
Dies scheint die Frage nicht zu beantworten?
Alan Storm
-2

Ja, es ist in .xsd (routerIdType, routeIdType, moduleNameType, beforeAfterType, routeFrontNameType). Grund ist unbekannt.

https://github.com/magento/magento2/blob/077584c99ebb8007cad176c3b9a0144a05c259cd/lib/internal/Magento/Framework/App/etc/routes.xsd

https://github.com/magento/magento2/blob/077584c99ebb8007cad176c3b9a0144a05c259cd/lib/internal/Magento/Framework/App/etc/routes_merged.xsd

PayMage
quelle
2
Ich bin nicht an den technischen Details interessiert, wie die Einschränkung implementiert wurde, ich möchte wissen, warum sie überhaupt vorhanden ist.
Alan Storm