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

Appearance settings

Commit 52a517b

Browse filesBrowse files
committed
Merge branch '2.7' into 2.8
* 2.7: Use Twig's namespaced paths Minor reword Clearify setup of basic auth for test environment Added a missing <script> tag in an example minor tweak Fix comment to be consistent with the example Reworded the article about slashes in routing placeholders Minor reword of code contribution standards
2 parents 6c29afc + 5f3c35b commit 52a517b
Copy full SHA for 52a517b

File tree

Expand file treeCollapse file tree

6 files changed

+44
-31
lines changed
Filter options
Expand file treeCollapse file tree

6 files changed

+44
-31
lines changed

‎contributing/code/standards.rst

Copy file name to clipboardExpand all lines: contributing/code/standards.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ Naming Conventions
186186
* Use camelCase, not underscores, for variable, function and method
187187
names, arguments;
188188

189-
* Use underscores for option names and parameter names;
189+
* Use underscores for configuration options and parameters;
190190

191191
* Use namespaces for all classes;
192192

‎form/type_guesser.rst

Copy file name to clipboardExpand all lines: form/type_guesser.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ With this knowledge, you can easily implement the ``guessType()`` method of the
140140
$phpdoc = $reflectionProperty->getDocComment();
141141

142142
// parse the $phpdoc into an array like:
143-
// array('type' => 'string', 'since' => '1.0')
143+
// array('var' => 'string', 'since' => '1.0')
144144
$phpdocTags = ...;
145145

146146
return $phpdocTags;

‎profiler/data_collector.rst

Copy file name to clipboardExpand all lines: profiler/data_collector.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ block and set the value of two variables called ``icon`` and ``text``:
153153

154154
.. code-block:: html+twig
155155

156-
{% extends 'WebProfilerBundle:Profiler:layout.html.twig' %}
156+
{% extends '@WebProfiler/Profiler/layout.html.twig' %}
157157

158158
{% block toolbar %}
159159
{% set icon %}

‎routing/generate_url_javascript.rst

Copy file name to clipboardExpand all lines: routing/generate_url_javascript.rst
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ variables. The ``escape()`` function helps escape any non-JavaScript-safe values
3030
But if you *actually* need to generate routes in pure JavaScript, consider using
3131
the `FOSJsRoutingBundle`_. It makes the following possible:
3232

33-
.. code-block:: javascript
33+
.. code-block:: html+twig
3434

35+
<script>
3536
var url = Routing.generate('blog_show', {
3637
'slug': 'my-blog-post'
3738
});
39+
</script>
3840

3941
.. _`FOSJsRoutingBundle`: https://github.com/FriendsOfSymfony/FOSJsRoutingBundle

‎routing/slash_in_parameter.rst

Copy file name to clipboardExpand all lines: routing/slash_in_parameter.rst
+32-24Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,47 +5,47 @@ How to Allow a "/" Character in a Route Parameter
55
=================================================
66

77
Sometimes, you need to compose URLs with parameters that can contain a slash
8-
``/``. For example, take the classic ``/hello/{username}`` route. By default,
9-
``/hello/Fabien`` will match this route but not ``/hello/Fabien/Kris``. This
10-
is because Symfony uses this character as separator between route parts.
8+
``/``. For example, consider the ``/share/{token}`` route. If the ``token``
9+
value contains a ``/`` character this route won't match. This is because Symfony
10+
uses this character as separator between route parts.
1111

12-
This guide covers how you can modify a route so that ``/hello/Fabien/Kris``
13-
matches the ``/hello/{username}`` route, where ``{username}`` equals ``Fabien/Kris``.
12+
This article explains how you can modify a route definition so that placeholders
13+
can contain the ``/`` character too.
1414

1515
Configure the Route
1616
-------------------
1717

18-
By default, the Symfony Routing component requires that the parameters
19-
match the following regex path: ``[^/]+``. This means that all characters
20-
are allowed except ``/``.
18+
By default, the Symfony Routing component requires that the parameters match
19+
the following regular expression: ``[^/]+``. This means that all characters are
20+
allowed except ``/``.
2121

22-
You must explicitly allow ``/`` to be part of your parameter by specifying
23-
a more permissive regex path.
22+
You must explicitly allow ``/`` to be part of your placeholder by specifying
23+
a more permissive regular expression for it:
2424

2525
.. configuration-block::
2626

2727
.. code-block:: php-annotations
2828
2929
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
3030
31-
class DemoController
31+
class DefaultController
3232
{
3333
/**
34-
* @Route("/hello/{username}", name="_hello", requirements={"username"=".+"})
34+
* @Route("/share/{token}", name="share", requirements={"token"=".+"})
3535
*/
36-
public function helloAction($username)
36+
public function shareAction($token)
3737
{
3838
// ...
3939
}
4040
}
4141
4242
.. code-block:: yaml
4343
44-
_hello:
45-
path: /hello/{username}
46-
defaults: { _controller: AppBundle:Demo:hello }
44+
share:
45+
path: /share/{token}
46+
defaults: { _controller: AppBundle:Default:share }
4747
requirements:
48-
username: .+
48+
token: .+
4949
5050
.. code-block:: xml
5151
@@ -55,9 +55,9 @@ a more permissive regex path.
5555
xsi:schemaLocation="http://symfony.com/schema/routing
5656
http://symfony.com/schema/routing/routing-1.0.xsd">
5757
58-
<route id="_hello" path="/hello/{username}">
59-
<default key="_controller">AppBundle:Demo:hello</default>
60-
<requirement key="username">.+</requirement>
58+
<route id="share" path="/share/{token}">
59+
<default key="_controller">AppBundle:Default:share</default>
60+
<requirement key="token">.+</requirement>
6161
</route>
6262
</routes>
6363
@@ -67,12 +67,20 @@ a more permissive regex path.
6767
use Symfony\Component\Routing\Route;
6868
6969
$collection = new RouteCollection();
70-
$collection->add('_hello', new Route('/hello/{username}', array(
71-
'_controller' => 'AppBundle:Demo:hello',
70+
$collection->add('share', new Route('/share/{token}', array(
71+
'_controller' => 'AppBundle:Default:share',
7272
), array(
73-
'username' => '.+',
73+
'token' => '.+',
7474
)));
7575
7676
return $collection;
7777
78-
That's it! Now, the ``{username}`` parameter can contain the ``/`` character.
78+
That's it! Now, the ``{token}`` parameter can contain the ``/`` character.
79+
80+
.. note::
81+
82+
If the route defines several placeholders and you apply this permissive
83+
regular expression to all of them, the results won't be the expected. For
84+
example, if the route definition is ``/share/{path}/{token}`` and both
85+
``path`` and ``token`` accept ``/``, then ``path`` will contain its contents
86+
and the token, and ``token`` will be empty.

‎testing/http_authentication.rst

Copy file name to clipboardExpand all lines: testing/http_authentication.rst
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@ firewall, but only in the configuration file used by tests:
3030
# app/config/config_test.yml
3131
security:
3232
firewalls:
33-
your_firewall_name:
33+
# replace 'main' by the name of your own firewall
34+
main:
3435
http_basic: ~
3536
3637
.. code-block:: xml
3738
3839
<!-- app/config/config_test.xml -->
3940
<security:config>
40-
<security:firewall name="your_firewall_name">
41+
<!-- replace 'main' by the name of your own firewall -->
42+
<security:firewall name="main">
4143
<security:http-basic />
4244
</security:firewall>
4345
</security:config>
@@ -47,7 +49,8 @@ firewall, but only in the configuration file used by tests:
4749
// app/config/config_test.php
4850
$container->loadFromExtension('security', array(
4951
'firewalls' => array(
50-
'your_firewall_name' => array(
52+
// replace 'main' by the name of your own firewall
53+
'main' => array(
5154
'http_basic' => array(),
5255
),
5356
),

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.