¿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?


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


0

cambiar hello-world como hello_world

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


Esto no parece responder a la pregunta?
— Alan Storm

-2

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.