doppy / routing-bundle
此包已被废弃,不再维护。未建议替代包。
包含一些简单实用的路由工具
2.2.0
2018-05-10 09:52 UTC
Requires
- php: ^7.0
- symfony-cmf/routing: ^2.0
- symfony/framework-bundle: ^3.0|^4.0
README
一个基于symfony/cmf-routing的提供一些额外路由功能的Symfony2/Symfony3包。
此包只提供简单的配置,而不是实际代码,因为链式路由器由symfony/cmf-routing提供。
安装
添加到composer
"require": {
"doppy/routing-bundle": "^2.0.0",
}
添加到AppKernel
public function registerBundles()
{
$bundles = array(
// ...
new Doppy\RoutingBundle\DoppyRoutingBundle(),
// ...
);
}
编写自己的路由器
在你的应用中某个地方实现自己的路由器。你需要使用以下接口之一或多个
Symfony\Component\Routing\Generator\UrlGeneratorInterface
仅用于生成URL。如果你想要生成指向不同站点的URL,这个很有用。Symfony\Component\Routing\Matcher\UrlMatcherInterface
用于简单地将传入的URL匹配到控制器。Symfony\Component\Routing\Matcher\RequestMatcherInterface
用于更复杂地将传入的URL匹配到控制器。
有关生成和匹配URL的更多信息,请参阅Symfony文档(关于这些接口)。
通常将其定义为服务,或使用自动注入。
添加路由器
有两种方法可以使你的自定义路由器为人所知,它们具有相同的结果。
对于同一路由器,你不应该同时使用这两种方法,因为这会导致你的路由器被多次添加。
方法1:配置
使用主要配置
doppy_routing:
chain:
routers_by_id:
App\Routing\Router: 200
其中数字是使用优先级。
方法2:标签
services:
your_bundle.routing.router:
class: App\Routing\Router
tags:
- { name: doppy_routing.router, priority: 200 }
使用此方法,你不需要在配置中添加symfony路由器,因为标签会自动完成此操作。
不支持自动标签
默认Symfony路由器
默认的symfony路由器已默认添加,优先级为100。你可以通过调整以下两种方式之一来调整此配置
禁用默认路由器
doppy_routing:
default_router: false
或不同的优先级
doppy_routing:
default_router: -100