netbull / routing-bundle
使用简单服务加载您的Symfony路由。
dev-master
2019-01-04 08:35 UTC
Requires
- php: ^7.1
- symfony/dependency-injection: ^3.3|^4.0
- symfony/framework-bundle: ^3.3|^4.0
- symfony/http-kernel: ^3.3|^4.0
- symfony/routing: ^3.3|^4.0
- symfony/twig-bundle: ^3.3|^4.0
- symfony/yaml: ^3.3|^4.0
This package is auto-updated.
Last update: 2024-09-04 20:58:02 UTC
README
要添加路由,通常需要在 config/routing.yml
文件中添加几行。
感谢这个路由器,您可以通过服务加载器轻松添加它们.
步骤 1: 下载 Bundle
打开命令行,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本
$ composer require netbull/routing-bundle
此命令需要您全局安装 Composer,如 Composer 文档中的 安装章节 所述。
步骤 2: 启用 Bundle
然后,通过将其添加到项目中 app/AppKernel.php
文件中注册的 Bundle 列表来启用该 Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new NetBull\RoutingBundle\NetBullRoutingBundle(), ); // ... } // ... }
用法
-
实现
RouteCollectionProviderInterface
use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; use NetBull\RoutingBundle\Routing\RouteCollectionProviderInterface; class SomeRouteCollectionProvider implements RouteCollectionProviderInterface { public function getRouteCollection() : RouteCollection { $routeCollection = new RouteCollection(); $routeCollection->add('my_route', new Route('/hello')); return $routeCollection; } }
-
注册服务
services: some_module.route_provider: class: SomeModule\Routing\SomeRouteCollectionProvider autowire: true
这就完成了!
加载 YML/XML 文件
如果您想加载这些文件,只需使用 AbstractRouteCollectionProvider
和辅助方法。
use Symfony\Component\Routing\RouteCollection; use NetBull\RoutingBundle\Routing\AbstractRouteCollectionProvider; class FilesRouteCollectionProvider extends AbstractRouteCollectionProvider { public function getRouteCollection(): RouteCollection { return $this->loadRouteCollectionFromFiles([ __DIR__ . '/routes.xml', __DIR__ . '/routes.yml', ]); // on in case you have only 1 file // return $this->loadRouteCollectionFromFile(__DIR__ . '/routes.yml'); } }