Por que o Magento 2 força os URLs a terem mais de 3 caracteres

9

Se você tentar criar um módulo com um nome de frente como hello-worldno Magento 2, receberá um erro parecido com este .

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 o Magento não deseja nomes de URLs com nada além de um número, letra ou sublinhado. Também força os nomes da frente a terem três ou mais caracteres.

A limitação de número, letra e sublinhado faz sentido, pois uma ID de rota é usada para criar um identificador de layout e caracteres " especiais " podem causar um problema. No entanto, o limite de três caracteres é confuso.

Alguém sabe a razão para isso?

Alan Storm
fonte
Talvez seja por causa das validações XSD existentes.
Bhargav Mehta
2
@Bhargav Sim, mas por que o XSD está configurado dessa maneira?
Alan Storm

Respostas:

4

O motivo foi evitar declarações confusas com identificadores muito curtos (o mesmo que limitações de variáveis ​​muito curtas nos analisadores de estilo de código PHP).

Foi aplicado a vários tipos de campos. O nome da frente da rota tem essa limitação por engano. Será consertado

Anton Kril
fonte
0

alterar olá mundo como hello_world

Os caracteres válidos são alfabeto, numérico e _

Sankar Venkat
fonte
Isso não parece responder à pergunta?
Alan Storm
-2

Sim, está em .xsd (routerIdType, routeIdType, moduleNameType, beforeAfterType, routeFrontNameType). A razão é desconhecida.

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
fonte
2
Não estou interessado nos detalhes técnicos de como a limitação foi implementada. Quero saber por que ela está lá em primeiro lugar.
Alan Storm