¿Por qué Magento 2 obliga a las URL a tener más de 3 caracteres?

9

Si intenta crear un módulo con un nombre frontal como hello-worlden Magento 2, obtendrá un error similar al siguiente .

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

Parece que Magento no quiere nombres de URL que tengan algo más que un número, letra o guión bajo. También obliga a los nombres de frente a tener tres o más caracteres.

La limitación de números, letras y guiones bajos tiene sentido ya que se usa una ID de ruta para crear un controlador de diseño y los caracteres " especiales " pueden causar un problema. Sin embargo, el límite de tres caracteres es confuso.

¿Alguien sabe la razón de esto?

Alan Storm
fuente
Tal vez esto se deba a las validaciones XSD que están en su lugar.
Bhargav Mehta
2
@Bhargav Sí, pero ¿por qué está configurado el XSD de esa manera?
Alan Storm

Respuestas:

4

La razón era evitar declaraciones desordenadas con identificadores demasiado cortos (lo mismo que limitaciones de variables demasiado cortas en analizadores de estilo de código PHP).

Se aplicó a múltiples tipos de campo. El nombre del frente de la ruta tiene esta limitación por error. Será arreglado

Anton Kril
fuente
0

cambiar hello-world como hello_world

Los caracteres válidos son alfabeto, numérico y _

Sankar Venkat
fuente
Esto no parece responder a la pregunta?
Alan Storm
-2

Sí, está en .xsd (routerIdType, routeIdType, moduleNameType, beforeAfterType, routeFrontNameType). La razón es desconocida.

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
fuente
2
No estoy interesado en los detalles técnicos de cómo se implementó la limitación, quiero saber por qué está allí en primer lugar.
Alan Storm