Допустимо ли следующее имя маршрута в Symfony?
#[Route('/{profileId}/bundles/{bundleId}', name: 'data export bundle details')]
Во всех примерах, которые я видел, в названии слова разделяются подчеркиванием (в данном примере это будет data_export_bundle_details
).
Глядя на документацию, там ничего не говорится о разрешенных символах, там просто говорится, что имена маршрутов должны быть уникальными, поэтому я предполагаю, что приведенное выше имя подойдет, но может ли кто-нибудь подтвердить?
Единственная цель — идентифицировать маршрут где-то еще, и это внутренний идентификатор, который не нужно экспортировать или сериализовать, поэтому я предполагаю, что он используется для простого сопоставления, и вы, возможно, сможете использовать даже смайлики (просто предполагаю, я никогда не пытался). Преимущество подчеркивания состоит в том, что оно явно подразумевает, что это не просто отображаемая метка для людей, и его редактирование может иметь последствия.
Да, это будет правильный маршрут.
И это тривиально проверяется путем создания такого маршрута и проверки его работы.
#[Route('/test', name: 'this is test')]
class TestingController extends AbstractController
{
public function __invoke(): Response
{
return new Response('this is a test');
}
}
$ bin/console debug:router
---------------- -------- -------- ------ --------------------------
Name Method Scheme Host Path
---------------- -------- -------- ------ --------------------------
_preview_error ANY ANY ANY /_error/{code}.{_format}
this is test ANY ANY ANY /test
---------------- -------- -------- ------ --------------------------
http 127.0.0.1:8989/test
HTTP/1.1 200 OK
Cache-Control: no-cache, private
Connection: close
Content-Type: text/html; charset=UTF-8
Date: Mon, 29 Apr 2024 14:45:49 GMT
Host: 127.0.0.1:8989
X-Powered-By: PHP/8.3.6
X-Robots-Tag: noindex
this is a test
Имя маршрута — это произвольная, уникальная для приложения строка. Вот и все. Вероятно, лучше вообще не называть маршруты явно и использовать имена маршрутов, сгенерированные системой, с использованием полных имен классов, чтобы вы могли воспользоваться преимуществами автозаполнения.
Но в ваших силах поступить по-другому.
Я думаю, что для правильной проверки работы имени вам нужно реально его использовать, например, создав ссылку.
Использование змеиного регистра для вашего имени — рекомендуемая практика Symfony, поэтому я бы сохранил
data_export_bundle_details
(И если вы спросите, возможно ли это, да, это так. Вы можете легко проверить, попробовав).