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?


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


0

Ändere die Hallo-Welt als Hallo-Welt

Gültige Zeichen sind Alphabet, numerisch und _


Dies scheint die Frage nicht zu beantworten?
Alan Storm

-2

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.