Skip to content

Commit 52a517b

Browse 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

File tree

6 files changed

+44
-31
lines changed

6 files changed

+44
-31
lines changed

contributing/code/standards.rst

Lines 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

Lines 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

Lines 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

Lines 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

Lines 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

Lines 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)