Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita22235b

Browse files
committed
Reworded and improved the routing/external_resources article
1 parent89bcd82 commita22235b

File tree

1 file changed

+46
-53
lines changed

1 file changed

+46
-53
lines changed

‎routing/external_resources.rst‎

Lines changed: 46 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,37 @@
44
How to Include External Routing Resources
55
=========================================
66

7-
All routes are loaded via a single configuration file - usually ``app/config/routing.yml``
8-
(see:ref:`routing-creating-routes`). However, if you use routing annotations,
9-
you'll need to point the router to the controllers with the annotations.
10-
This can be done by "importing" directories into the routing configuration:
7+
Simple applications can define all their routes in a single configuration file -
8+
usually ``app/config/routing.yml`` (see:ref:`routing-creating-routes`).
9+
However, in most applications it's common to import routes definitions from
10+
different resources: PHP annotations in controller files, YAML or XML files
11+
stored in some directory, etc.
12+
13+
This can be done by importing routing resources from the main routing file:
1114

1215
..configuration-block::
1316

1417
..code-block::yaml
1518
1619
# app/config/routing.yml
17-
app:
20+
app_file:
21+
# loads routes from the given routing file stored in some bundle
22+
resource:'@AcmeOtherBundle/Resources/config/routing.yml'
23+
24+
app_annotations:
25+
# loads routes from the PHP annotations of the controllers found in that directory
1826
resource:'@AppBundle/Controller/'
19-
type:annotation# required to enable the Annotation reader for this resource
27+
type:annotation
28+
29+
app_directory:
30+
# loads routes from the YAML or XML files found in that directory
31+
resource:'../legacy/routing/'
32+
type:directory
33+
34+
app_bundle:
35+
# loads routes from the YAML or XML files found in some bundle directory
36+
resource:'@AppBundle/Resources/config/routing/public/'
37+
type:directory
2038
2139
..code-block::xml
2240
@@ -27,8 +45,17 @@ This can be done by "importing" directories into the routing configuration:
2745
xsi:schemaLocation="http://symfony.com/schema/routing
2846
http://symfony.com/schema/routing/routing-1.0.xsd">
2947
30-
<!-- the type is required to enable the annotation reader for this resource-->
31-
<importresource="@AppBundle/Controller/"type="annotation"/>
48+
<!-- loads routes from the given routing file stored in some bundle-->
49+
<importresource="@AcmeOtherBundle/Resources/config/routing.yml" />
50+
51+
<!-- loads routes from the PHP annotations of the controllers found in that directory-->
52+
<importresource="@AppBundle/Controller/"type="annotation" />
53+
54+
<!-- loads routes from the YAML or XML files found in that directory-->
55+
<importresource="../legacy/routing/"type="directory" />
56+
57+
<!-- loads routes from the YAML or XML files found in some bundle directory-->
58+
<importresource="@AppBundle/Resources/config/routing/public/"type="directory" />
3259
</routes>
3360
3461
..code-block::php
@@ -38,60 +65,26 @@ This can be done by "importing" directories into the routing configuration:
3865
3966
$collection = new RouteCollection();
4067
$collection->addCollection(
41-
// second argument is the type, which is required to enable
42-
// the annotation reader for this resource
68+
// loads routes from the given routing file stored in some bundle
69+
$loader->import("@AcmeOtherBundle/Resources/config/routing.yml")
70+
71+
// loads routes from the PHP annotations of the controllers found in that directory
4372
$loader->import("@AppBundle/Controller/", "annotation")
73+
74+
// loads routes from the YAML or XML files found in that directory
75+
$loader->import("../legacy/routing/", "directory")
76+
77+
// loads routes from the YAML or XML files found in some bundle directory
78+
$loader->import("@AppBundle/Resources/config/routing/public/", "directory")
4479
);
4580
4681
return $collection;
4782
4883
..note::
4984

50-
When importing resources from YAML, the key (e.g. ``app``) is meaningless.
85+
When importing resources from YAML, the key (e.g. ``app_file``) is meaningless.
5186
Just be sure that it's unique so no other lines override it.
5287

53-
The ``resource`` key loads the given routing resource. In this example the
54-
resource is a directory, where the ``@AppBundle`` shortcut syntax resolves
55-
to the full path of the AppBundle. When pointing to a directory, all files
56-
in that directory are parsed and put into the routing.
57-
58-
..note::
59-
60-
You can also include other routing configuration files, this is often
61-
used to import the routing of third party bundles:
62-
63-
..configuration-block::
64-
65-
..code-block::yaml
66-
67-
# app/config/routing.yml
68-
app:
69-
resource:'@AcmeOtherBundle/Resources/config/routing.yml'
70-
71-
..code-block::xml
72-
73-
<!-- app/config/routing.xml-->
74-
<?xml version="1.0" encoding="UTF-8" ?>
75-
<routesxmlns="http://symfony.com/schema/routing"
76-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
77-
xsi:schemaLocation="http://symfony.com/schema/routing
78-
http://symfony.com/schema/routing/routing-1.0.xsd">
79-
80-
<importresource="@AcmeOtherBundle/Resources/config/routing.xml" />
81-
</routes>
82-
83-
..code-block::php
84-
85-
// app/config/routing.php
86-
use Symfony\Component\Routing\RouteCollection;
87-
88-
$collection = new RouteCollection();
89-
$collection->addCollection(
90-
$loader->import("@AcmeOtherBundle/Resources/config/routing.php")
91-
);
92-
93-
return $collection;
94-
9588
Prefixing Imported Routes
9689
~~~~~~~~~~~~~~~~~~~~~~~~~
9790

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp