Symfony2 中以下划线开头的路由名称
Route names starting with underscore in Symfony2
我正在处理 Symfony2 项目,在文件 routing.yml
中有以下行:
_front:
resource: routing_front.yml
_admin:
resource: routing_admin.yml
prefix: /admin
所以这实际上允许在单独的专用文件中定义前端和后端的路由。
但是名字呢?它只是一个以下划线开头的命名约定 - 乍一看会告诉实际路由在不同的文件中 - 或者这对框架如何处理这些有影响吗?
这只是一种命名约定。
但框架将通过匹配定义的第一个路由与请求的匹配 url 来处理路由,然后是第二个路由,依此类推...
因此,在您的情况下,即使您请求 http://www.mysyte.com/admin/whatever
,它也会先将此 url 与 routing_front.yml
中的所有路由匹配,然后再将它们与 routing_admin.yml
[= 匹配13=]
当您在 Twig 模板中创建链接时,这些名称变得特别有用 - 您可以根据路由名称生成绝对 URL,而不是对 URL 进行硬编码,例如:
<a href="{{ url('_welcome') }}">Welcome page</a>
下划线使它更明显地成为一条路线,如果你是一个特别深入 Symfony 领域的开发者(这是一个惯例),但它们绝对不是 必需的本身。
我正在处理 Symfony2 项目,在文件 routing.yml
中有以下行:
_front:
resource: routing_front.yml
_admin:
resource: routing_admin.yml
prefix: /admin
所以这实际上允许在单独的专用文件中定义前端和后端的路由。
但是名字呢?它只是一个以下划线开头的命名约定 - 乍一看会告诉实际路由在不同的文件中 - 或者这对框架如何处理这些有影响吗?
这只是一种命名约定。
但框架将通过匹配定义的第一个路由与请求的匹配 url 来处理路由,然后是第二个路由,依此类推...
因此,在您的情况下,即使您请求 http://www.mysyte.com/admin/whatever
,它也会先将此 url 与 routing_front.yml
中的所有路由匹配,然后再将它们与 routing_admin.yml
[= 匹配13=]
当您在 Twig 模板中创建链接时,这些名称变得特别有用 - 您可以根据路由名称生成绝对 URL,而不是对 URL 进行硬编码,例如:
<a href="{{ url('_welcome') }}">Welcome page</a>
下划线使它更明显地成为一条路线,如果你是一个特别深入 Symfony 领域的开发者(这是一个惯例),但它们绝对不是 必需的本身。