如何包括外部路由资源
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
如何包括外部路由资源
通常,所有的路由都是通过一个配置文件加载的应用程序/配置/ routing.yml
(见路由).但是,如果使用路由注释,则需要使用注释将路由器指向控制器。这可以通过将目录“导入”到路由配置中来实现:
- YAML
- XML
- PHP
1 2 3 4
# app / config / routing.yml应用:资源:“@AppBundle /控制器/”类型:注释#需要为该资源启用Annotation阅读器
1 2 3 4 5 6 7 8 9 10
<!——app/config/routing.xml——> .xml<??> . xml version="1.0" encoding="UTF-8"<路线xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing //www.oldmanjams.com/schema/routing/routing-1.0.xsd”><!——启用此资源的注释阅读器所需的类型——><进口资源=“@AppBundle /控制器/”类型=“注释”/>路线>
1 2 3 4 5 6 7 8 9 10 11
/ / app / config / routing.php使用欧宝娱乐app下载地址\组件\路由\RouteCollection;$集合=新RouteCollection ();$集合->addCollection (//第二个参数是类型,需要启用//该资源的注释阅读器$加载程序->导入(“@AppBundle /控制器/”,“注释”));返回$集合;
请注意
当从YAML导入资源时,键(例如。应用程序
)毫无意义。只是要确保它是唯一的,这样其他行就不会覆盖它。
的资源
键加载给定的路由资源。在本例中,资源是一个目录,其中@AppBundle
解析为AppBundle的完整路径。当指向一个目录时,该目录中的所有文件都将被解析并放入路由中。
请注意
你也可以包括其他路由配置文件,这通常用于导入第三方包的路由:
- YAML
- XML
- PHP
1 2 3
# app / config / routing.yml应用:资源:“@AcmeOtherBundle /资源/ config / routing.yml”
1 2 3 4 5 6 7 8 9
<!——app/config/routing.xml——> .xml<??> . xml version="1.0" encoding="UTF-8"<路线xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing //www.oldmanjams.com/schema/routing/routing-1.0.xsd”><进口资源=“@AcmeOtherBundle /资源/ config /利用”/>路线>
1 2 3 4 5 6 7 8 9
/ / app / config / routing.php使用欧宝娱乐app下载地址\组件\路由\RouteCollection;$集合=新RouteCollection ();$集合->addCollection ($加载程序->导入(“@AcmeOtherBundle /资源/ config / routing.php”));返回$集合;
为引入的路由添加前缀
您也可以选择为引入的路由提供一个“前缀”。例如,假设你想给AppBundle中的所有路由加上前缀/网站
(如。/网站/博客/{蛞蝓}
而不是/博客/{蛞蝓}
):
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / routing.yml应用:资源:“@AppBundle /控制器/”类型:注释前缀:/网站
12 3 4 5 6 7 8 9 10 11 12
<!——app/config/routing.xml——> .xml<??> . xml version="1.0" encoding="UTF-8"<路线xmlns=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing”xmlns: xsi=“http://www.w3.org/2001/XMLSchema-instance”xsi: schemaLocation=“http://欧宝娱乐app下载地址www.oldmanjams.com/schema/routing //www.oldmanjams.com/schema/routing/routing-1.0.xsd”><进口资源=“@AppBundle /控制器/”类型=“注释”前缀=“/网站”/>路线>
1 2 3 4 5 6 7 8 9 10
/ / app / config / routing.php使用欧宝娱乐app下载地址\组件\路由\RouteCollection;$应用程序=$加载程序->导入(“@AppBundle /控制器/”,“注释”);$应用程序->addPrefix (“/网站”);$集合=新RouteCollection ();$集合->addCollection ($应用程序);返回$集合;
从新的路由资源加载的每个路由的路径现在都将以字符串作为前缀/网站
.
为引入的路由添加主机需求
可以对引入的路由设置主机正则表达式。有关更多信息,请参见如何根据主机匹配路由.
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。