This PR was submitted for the 2.6 branch but it was merged into the 2.5 branch instead (closes#13549).
Discussion
----------
[EventDispatcher] Wrong EventDispatcher instance injected in listeners
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Actually, when using the `TraceableEventDispatcher` the listeners gets injected as third parameter the original `EventDispatcher` instead of the decorated dispatcher, this causes that the method `getCalledListeners` returns a wrong result if we dispatch another event inside a listener.
Code to reproduce:
```php
<?php
require_once __DIR__.'/vendor/autoload.php';
use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\Stopwatch\Stopwatch;
$dispatcher = new TraceableEventDispatcher(new EventDispatcher(), new Stopwatch());
$dispatcher->addListener('bar', function ($event, $eventName, $dispatcher) {});
$dispatcher->addListener('foo', function ($event, $eventName, $dispatcher) {
$dispatcher->dispatch('bar');
});
$dispatcher->dispatch('foo');
$calledListeners = $dispatcher->getCalledListeners();
print_r($calledListeners);
```
Expected result:
```
Array
(
[bar.closure] => Array
(
[event] => bar
[type] => Closure
[pretty] => closure
)
[foo.closure] => Array
(
[event] => foo
[type] => Closure
[pretty] => closure
)
)
```
Actual result:
```
Array
(
[foo.closure] => Array
(
[event] => foo
[type] => Closure
[pretty] => closure
)
)
```
Commits
-------
458b029 Inject the correct EventDispatcher instance
This PR was merged into the 2.3 branch.
Discussion
----------
[Validator] drop grapheme_strlen in LengthValidator
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13491
| License | MIT
| Doc PR | -
As stated in #13491, validating the length of a string with grapheme_strlen is not suited to validating input because a very long string can in fact have a length of 1 when counted with grapheme_strlen.
Counting UTF-8 characters (not clusters) is not subject to this problem.
The attached patch removes using grapheme_strlen but also adds more fallback when couting the length of strings, using iconv (which is more broadly avail. than mbstring) or PCRE for UTF-8 strings.
Commits
-------
915fcd8 [Validator] drop grapheme_strlen in LengthValidator
This PR was merged into the 2.6 branch.
Discussion
----------
[Hackday] [Toolbar] Fix info position and icons on small screens
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12582
| License | MIT
| Doc PR | -
I changed a bit the order of profiles, IMO the dump goes closer to request data. Then I tweaked a bit the toolbar to show more icons even on smaller screen. I tested everything with Chrome and IE9 and it seems to work smoothly.
Here are some explanatory screenshots:
![](http://cl.ly/image/3E2e360Y0a15/Screen%20Shot%202014-11-29%20at%2011.56.17.png)
![](http://cl.ly/image/1d073v2v2U2J/Screen%20Shot%202014-11-29%20at%2011.56.42.png)
Commits
-------
838857c [Toolbar] Reset right and left .sf-toolbar-info values needed for window resize
23c0ddc [Toolbar] Handle info position via javascript Place info div to not float out of the window
7a8582e [Toolbar] Display all icons, even on two lines for small screens
This PR was merged into the 2.6 branch.
Discussion
----------
[OptionsResolver] added test for allowed values and types that default to null
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | -
| License | MIT
| Doc PR | -
Added test to keep logic as experienced in #12809
Commits
-------
0b42cad [OptionsResolver] added test for allowed values and types that default to null
This PR was merged into the 2.6 branch.
Discussion
----------
[SecurityBundle] fixed tests where cleanup was not done properly
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
f853cf2 [SecurityBundle] fixed tests where cleanup was not done properly
* 2.5:
[2.3] [HttpFoundation] [MimeTypeGuesser]
Removed dead code and various cleaning
[Console] Make it clear that the second argument is not about command options.
Added the '-' character for spaceless on tag start and end to be consistent for block, if, set and for nodes
[Yaml] fixed parse shortcut Key after unindented collection.
[Console] fixed#10531
Make the container considered non-fresh if the environment parameters are changed
Conflicts:
src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
* 2.3:
[2.3] [HttpFoundation] [MimeTypeGuesser]
Removed dead code and various cleaning
[Console] Make it clear that the second argument is not about command options.
Added the '-' character for spaceless on tag start and end to be consistent for block, if, set and for nodes
[Yaml] fixed parse shortcut Key after unindented collection.
[Console] fixed#10531
Make the container considered non-fresh if the environment parameters are changed
Conflicts:
src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig
src/Symfony/Bridge/Twig/Resources/views/Form/form_table_layout.html.twig
src/Symfony/Component/Console/Tests/ApplicationTest.php
src/Symfony/Component/Security/Core/Authentication/Provider/PreAuthenticatedAuthenticationProvider.php
This PR was merged into the 2.6 branch.
Discussion
----------
[2.6] Removed dead code and various cleaning
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
In complement of this one: https://github.com/symfony/symfony/pull/13488/
Commits
-------
dbbe170 Removed dead code and various cleaning
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3] Removed dead code and various cleaning
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
50973ba Removed dead code and various cleaning
This PR was merged into the 2.3 branch.
Discussion
----------
Make the container considered non-fresh if the environment parameters are changed
| Q | A
| ------------- | ---
| Bug fix? | not really
| New feature? | kind of
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11365
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/4645Fixes#11365 by making the container non-fresh if any of the prefixed environment parameters are added/removed/changed. Not a bug as it was documented as behaving as such, but I think it's worth applying to 2.3 rather than considering it a new feature.
Commits
-------
b49fa12 Make the container considered non-fresh if the environment parameters are changed
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] fixed 10531
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #10531
| License | MIT
| Doc PR | -
This is a fix for #10531. It works by extracting all the parent namespaces of a command.
Commits
-------
e6afff4 [Console] fixed#10531
This PR was merged into the 2.6 branch.
Discussion
----------
[Form] fixed form tests when using 2.7 deps
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
This PR allows tests to pass for the Form subtree-split when using any version of the Validator component. The build was broken because the 2.4 API works in the same way as the 2.5 one in Symfony 2.7, so the cause is set. Testing the implementation of the context allows to know whether to expect the cause more reliably.
Commits
-------
a55f5c8 [Form] fixed form tests when using 2.7 deps
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3] [HttpFoundation] [MimeTypeGuesser] Updated exception in MimeTypeGuesser
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12857
| License | MIT
| Doc PR | none
Updated exception message in MimeTypeGuesser when no guessers available
(issue #12857).
Commits
-------
1e4a8d5 [2.3] [HttpFoundation] [MimeTypeGuesser]
This PR was merged into the 2.3 branch.
Discussion
----------
Consistent spaceless nodes in form templates
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Added '-' at the start and at the end of all if, for, set and block nodes. Related to #12422.
Replaces #12560.
Commits
-------
41c5be6 Added the '-' character for spaceless on tag start and end to be consistent for block, if, set and for nodes
This PR was merged into the 2.6 branch.
Discussion
----------
[TwigBridge] Fix bootstrap rendering when user explicitly use form_label
| Q | A
| ------------- | ---
| Bug fix? | #13417
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
I implemented what @javiereguiluz said in this [comment](https://github.com/symfony/symfony/issues/13417#issuecomment-71162558)
Commits
-------
717c6d1 [TwigBridge] Fix bootstrap rendering when user explicitly use form_label
This PR was merged into the 2.6 branch.
Discussion
----------
[VarDumper] Fixed HtmlDumper with long string
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
0a327eb Fixed HtmlDumper with long string
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] Clarify method arguments
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Make it clear that the second argument is not about command options to avoid bug reports like #13415.
Commits
-------
32338af [Console] Make it clear that the second argument is not about command options.
* 2.5:
[HttpFoundation] [Request] fix baseUrl parsing to fix wrong path_info
[Twig][Bridge][TranslationDefaultDomain] add support of named arguments.
[Form] Improved exception message if the data class is not found
Fixes ArgvInput's argument getter with empty tokens
execute cheaper checks before more expensive ones
[FrameworkBundle] FormDataCollector should be loaded only if form config is enabled
Conflicts:
src/Symfony/Bundle/FrameworkBundle/Resources/config/collectors.xml
* 2.3:
[HttpFoundation] [Request] fix baseUrl parsing to fix wrong path_info
[Twig][Bridge][TranslationDefaultDomain] add support of named arguments.
[Form] Improved exception message if the data class is not found
Fixes ArgvInput's argument getter with empty tokens
execute cheaper checks before more expensive ones
Conflicts:
src/Symfony/Component/Form/FormConfigBuilder.php
This PR was merged into the 2.6 branch.
Discussion
----------
[WebProfilerBundle] Minor plural/singular change
| Q | A
| --- | ---
| License | MIT
| Fixed tickets | -
Commits
-------
b3cfc1a Minor plural/singular change
This PR was merged into the 2.5 branch.
Discussion
----------
[FrameworkBundle] FormDataCollector should be loaded only if form config is enabled
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11407
| License | MIT
| Doc PR | -
Commits
-------
af496ea [FrameworkBundle] FormDataCollector should be loaded only if form config is enabled
This PR was submitted for the master branch but it was merged into the 2.6 branch instead (closes#12258).
Discussion
----------
[FrameworkBundle] print error message if server couldn't be started
As @weaverryan noticed in symfony/symfony-docs#4005, the `server:run` command would provide you with a success message even if there were a web server already listening.
Commits
-------
6b2537b print error message if server couldn't be started
This PR was squashed before being merged into the 2.3 branch (closes#13039).
Discussion
----------
[HttpFoundation] [Request] fix baseUrl parsing to fix wrong path_info
Hi everyone!
We at trivago had an issue with the Request object. It seems that all versions of symfony 2.x and 3.x are affected from this (possible) bug (don't checked 1.x).
Here is the problem:
some old legacy pages are deployed in the Document Root, let's say /var/www/www.test.com/ .
one or more new applications based on symfony are deployed to /var/release/new_app1/ , /var/release/new_app2/ , ... .
in /var/www/www.test.com/ there is a symlink "app" to /var/release/new_app1/web, like:
/var/www/www.test.com/app --> /var/release/new_app1/web/
there is a "SEO"/human-readable rewrite rule for Document Root (if called path/file not exist): (.*) --> app/app.php
the problem comes, when the user calls a uri starting with "app" or whatever the rewrite rule / symlink points to:
the user calls "http://www.test.com/apparthotel-1234"
results in $_SERVER parameters like this
```
'DOCUMENT_ROOT' =>'/var/www/www.test.com',
'SCRIPT_FILENAME' => '/var/www/www.test.com/app/app.php',
'SCRIPT_NAME' => '/app/app.php',
'PHP_SELF' => '/app/app.php/apparthotel-1234'
```
in Request::prepareBaseUrl() there are checks to find the baseUrl:
```
if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, $baseUrl)) {
// full $baseUrl matches
return $prefix;
}
if ($baseUrl && false !== $prefix = $this->getUrlencodedPrefix($requestUri, dirname($baseUrl))) {
// directory portion of $baseUrl matches
return rtrim($prefix, '/');
}
```
first it is checked if (in our case) "/app/app.php" is in the request uri (/apparthotel-1234).
it's not.
then it takes the dirname (of /app/app.php) which is /app and checks if it is in the request uri (/apparthotel-1234), and YES, it is! and "/app" is returned, but this is wrong, it should be empty (because it comes from a rewrite rule from root: /)!
later in preparePathInfo(), if there is a baseUrl, then the baseUrl is removed from the request uri:
/apparthotel-1234 ---> /arthotel-1234
The cause is, the second baseUrl check, checks if the path of the application is already in the uri, like when the request was "http://www.test.com/app/apparthotel-1234" and hit a rewrite rule like (.*) --> app.php in there, but because it matches a directory it must match "dirname($baseUrl) . '/'".
I also needed to fix one unit test of the getBaseUrl test:
the request uri recently was "/foo%20bar".
but from the $_SERVER infos "foo bar" is a directory, see:
```
'SCRIPT_FILENAME' => '/home/John Doe/public_html/foo bar/app.php',
'SCRIPT_NAME' => '/foo bar/app.php',
'PHP_SELF' => '/foo bar/app.php',
```
webservers will redirect a request "http://www.test.com/foo%20bar" to "http://www.test.com/foo%20bar/" when "foo bar" is a directory. checked this for apache 2.x and nginx 1.4.x.
this fix is for symfony master (3.0.x, see #13039).
I also prepared a merge request for actual 2.7 branch, it will also follow in some minutes. (see #13040)
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | this, #13040, #13038, #7329
| License | MIT
[HttpFoundation] [Request]
* added missing slash to baseUrl-path part check to remove the path, only when it's also a path in the uri
[HttpFoundation] [Tests] [RequestTest]
* fixed and added unittests
This is the symfony 2.3 branch fix for the issue related to #13038 and #13040
Happy christmas!
Commits
-------
3a3ecd3 [HttpFoundation] [Request] fix baseUrl parsing to fix wrong path_info