Почему Magento 2 заставляет URL быть 3+ символами


9

Если вы попытаетесь создать модуль с передним именем, как hello-worldв Magento 2, вы получите ошибку, которая выглядит следующим образом .

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

Похоже, что Magento не хочет, чтобы передовые имена URL содержали что-либо кроме числа, буквы или подчеркивания. Это также заставляет имена фронтов иметь три или более символов.

Ограничения цифрами, буквами и подчеркиванием имеют смысл, поскольку идентификатор маршрута используется для создания дескриптора макета, и « специальные » символы могут вызвать проблемы. Однако ограничение в три символа сбивает с толку.

Кто-нибудь знает причину этого?


Может быть, это из-за валидации XSD.
Бхаргав Мехта

2
@Bhargav Да, но почему XSD настроен таким образом?
Алан Сторм

Ответы:


4

Причина заключалась в том, чтобы избежать беспорядочных объявлений со слишком короткими идентификаторами (такими же, как слишком короткие ограничения переменных в анализаторах стиля кода PHP).

Он был применен к нескольким типам полей. Имя фронта маршрута имеет это ограничение по ошибке. Это будет исправлено



-2

2
Меня не интересуют технические подробности того, как было реализовано ограничение, я хочу знать, почему оно существует в первую очередь.
Алан Шторм
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.