This package is abandoned and no longer maintained. The author suggests using the symplify/framework-bundle package instead.
There is no license information available for the latest version (v2.0.0-RC3) of this package.

Load your Symfony routes with a simple service.

v2.0.0-RC3 2017-04-28 19:16 UTC


Build Status Downloads

To add routes you usually need to add few lines to app/config/routing.yml. If you have over dozens of modules, it would be easy to get lost in it. To see all options on how to do that including this package, read this short article.

Thanks to this router, you can add them easily as via service loader.


composer require symplify/modular-routing

Add bundle to AppKernel.php:

final class AppKernel extends Kernel
    public function registerBundles(): array
        $bundles = [
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Cmf\Bundle\RoutingBundle\CmfRoutingBundle(),
            new Symplify\ModularRouting\SymplifyModularRoutingBundle(),
            // ...


  1. Implement RouteCollectionProviderInterface

    use Symfony\Component\Routing\Route;
    use Symfony\Component\Routing\RouteCollection;
    use Symplify\ModularRouting\Contract\Routing\RouteCollectionProviderInterface;
    final class SomeRouteCollectionProvider implements RouteCollectionProviderInterface
        public function getRouteCollection() : RouteCollection
            $routeCollection = new RouteCollection();
            $routeCollection->add('my_route', new Route('/hello'));
            return $routeCollection;
  2. Register service

            class: SomeModule\Routing\SomeRouteCollectionProvider
            autowire: true # or better use Symplify\DefaultAutowire package

That's all!

Loading YML/XML files

In case you want to load these files, just use AbstractRouteCollectionProvider with helper methods.

use Symfony\Component\Routing\RouteCollection;
use Symplify\ModularRouting\Routing\AbstractRouteCollectionProvider;

final 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');


Send issue or pull-request to main repository.