modera / routing-bundle
This bundle makes it possible for bundles to dynamically include routing files from within your bundles.
Installs: 5 114
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 1
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.6
- sergeil/expander-bundle: ^1.0
- symfony/framework-bundle: ^3.4|^4.0
Requires (Dev)
- phake/phake: ^2.0
- phpunit/phpunit: ^5.5
- dev-master / 4.x-dev
- 3.x-dev
- v3.1.0
- v3.0.0
- 2.x-dev
- v2.57.0
- v2.56.0
- v2.55.0
- v2.54.0
- v2.53.0
- v2.52.2
- v2.52.1
- v2.52.0
- v2.51.1
- v2.51.0
- v2.0.50
- dev-sf3
- dev-MPFE-1005
- dev-MPFE-1007
- dev-MPFE-1014
- dev-MPFE-1014-2
- dev-MPFE-1017
- dev-MPFE-1029
- dev-MPFE-963
- dev-MPFE-975
- dev-MPFE-977
- dev-crub_pagination_fetch_fix
- dev-direct-bundle-csrf
This package is auto-updated.
Last update: 2024-10-29 04:30:56 UTC
README
This bundle makes it possible for bundles to dynamically include routing files so you don't need to manually register
them in root app/config/routing.yml
file.
Installation
Step 1: Download the Bundle
composer require modera/routing-bundle:4.x-dev
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
This bundle should be automatically enabled by Flex.
In case you don't use Flex, you'll need to manually enable the bundle by
adding the following line in the config/bundles.php
file of your project:
<?php // config/bundles.php return [ // ... Sli\ExpanderBundle\SliExpanderBundle::class => ['all' => true], // if you still don't have it Modera\RoutingBundle\ModeraRoutingBundle::class => ['all' => true], ];
Step 3: Add routing
// config/routes.yaml _modera_routing: resource: "@ModeraRoutingBundle/Resources/config/routing.yml"
Documentation
Internally ModeraRoutingBundle
relies on SliExpanderBundle
to leverage a consistent approach to creating extension
points. Shortly speaking, in order for a bundle to contribute routing resources it has to do two things:
- Create a contributor class which implements \Sli\ExpanderBundle\Ext\ContributorInterface
- Register it in a service container with tag
modera_routing.routing_resources_provider
.
This is how your contributor class may look like:
<?php namespace Modera\ExampleBundle\Contributions; use Sli\ExpanderBundle\Ext\ContributorInterface; class RoutingResourcesProvider implements ContributorInterface { public function getItems() { return array( '@ModeraExampleBundle/Resources/config/routing.yml' ); } }
And here we have its service container definition:
<services> <service id="modera_example.contributions.routing_resources_provider" class="Modera\ExampleBundle\Contributions\RoutingResourcesProvider"> <tag name="modera_routing.routing_resources_provider" /> </service> </services>
Since version v1.1 a simplified way of contributing new routing resources has been added (which doesn't require adding intermediate files). Instead of having getItems() method return a path to a routing file you can now return normalized file's content:
<?php class RoutingResourcesProvider implements ContributorInterface { public function getItems() { return array( array( 'resource' => '@ModeraExampleBundle/Controller/DefaultController.php', 'type' => 'annotation', ), ); } }
Licensing
This bundle is under the MIT license. See the complete license in the bundle: Resources/meta/LICENSE