@@ -59,6 +59,57 @@ containing :class:`Symfony\\Component\\Routing\\Route` objects.
59
59
when they are defined in one of the default formats (e.g. XML, YML,
60
60
PHP file).
61
61
62
+ Loading Routes with a Custom Service
63
+ ------------------------------------
64
+
65
+ .. versionadded :: 2.8
66
+ The option to load routes using Symfony services was introduced in Symfony 2.8.
67
+
68
+ Using a regular Symfony service is the simplest way to load routes in a
69
+ customized way. It's much easier than creating a full custom route loader, so
70
+ you should always consider this option first.
71
+
72
+ To do so, define ``type: service `` as the type of the loaded routing resource
73
+ and configure the service and method to call:
74
+
75
+ .. configuration-block ::
76
+
77
+ .. code-block :: yaml
78
+
79
+ # app/config/routing.yml
80
+ admin_routes :
81
+ resource : ' admin_route_loader:loadRoutes'
82
+ type : service
83
+
84
+ .. code-block :: xml
85
+
86
+ <!-- app/config/routing.xml -->
87
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
88
+ <routes xmlns =" http://symfony.com/schema/routing"
89
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
90
+ xsi : schemaLocation =" http://symfony.com/schema/routing
91
+ http://symfony.com/schema/routing/routing-1.0.xsd" >
92
+
93
+ <import resource =" admin_route_loader:loadRoutes" type =" service" />
94
+ </routes >
95
+
96
+ .. code-block :: php
97
+
98
+ // app/config/routing.php
99
+ use Symfony\Component\Routing\RouteCollection;
100
+
101
+ $collection = new RouteCollection();
102
+ $collection->addCollection(
103
+ $loader->import("admin_route_loader:loadRoutes", "service")
104
+ );
105
+
106
+ return $collection;
107
+
108
+ In this example, the routes are loaded by calling the ``loadRoutes() `` method of
109
+ the service whose ID is ``admin_route_loader ``. Your service doesn't have to
110
+ extend or implement any special class, but the called method must return a
111
+ :class: `Symfony\\ Component\\ Routing\\ RouteCollection ` object.
112
+
62
113
Creating a custom Loader
63
114
------------------------
64
115
0 commit comments