Pourquoi Magento 2 force-t-il les URL à 3 caractères ou plus

9

Si vous essayez de créer un module avec un nom de devant comme hello-worlddans Magento 2, vous obtiendrez une erreur qui ressemble à ceci .

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,}'.

Il semble que Magento ne veuille pas de noms de URL avant qui contiennent autre chose qu'un chiffre, une lettre ou un trait de soulignement. Il oblige également les noms de front à avoir trois caractères ou plus.

Le nombre, la lettre et la limitation de soulignement ont du sens, car un ID d'itinéraire est utilisé pour créer un descripteur de mise en page et des caractères " spéciaux " peuvent provoquer un problème. Cependant, la limite de trois caractères est source de confusion.

Est-ce que quelqu'un sait quelle est la raison de cela?

Alan Storm
la source
C'est peut-être à cause des validations XSD en place.
Bhargav Mehta
2
@Bhargav Oui, mais pourquoi le XSD est-il configuré de cette façon?
Alan Storm

Réponses:

4

La raison était d'éviter les déclarations désordonnées avec des identifiants trop courts (comme les limitations de variables trop courtes dans les analyseurs de style de code PHP).

Il a été appliqué à plusieurs types de champs. Le nom du front de route a cette limitation par erreur. Il sera corrigé

Anton Kril
la source
0

changer hello-world en hello_world

Les caractères valides sont l'alphabet, le numérique et le _

Sankar Venkat
la source
Cela ne semble pas répondre à la question?
Alan Storm
-2

Oui, il est en .xsd (routerIdType, routeIdType, moduleNameType, beforeAfterType, routeFrontNameType). La raison est inconnue.

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
la source
2
Je ne suis pas intéressé par les détails techniques de la façon dont la limitation a été mise en œuvre, je veux savoir pourquoi elle est là en premier lieu.
Alan Storm