Commit Graph

19632 Commits

Author SHA1 Message Date
Fabien Potencier
7cabfa0442 bug #13549 [EventDispatcher] Wrong EventDispatcher instance injected in listeners (dosten)
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
2015-01-29 19:20:43 +01:00
Diego Saint Esteben
458b02939f Inject the correct EventDispatcher instance 2015-01-29 19:20:43 +01:00
Nicolas Grekas
3a9058a7d7 [Validator] reject ill-formed strings 2015-01-28 12:08:28 +01:00
Fabien Potencier
faaa4fe3e6 bug #13527 [Validator] drop grapheme_strlen in LengthValidator (nicolas-grekas)
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
2015-01-26 20:11:19 +01:00
Nicolas Grekas
915fcd8dec [Validator] drop grapheme_strlen in LengthValidator 2015-01-26 18:35:52 +01:00
Fabien Potencier
eadc8c7de5 bug #12649 [Hackday] [Toolbar] Fix info position and icons on small screens (stefanosala)
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
2015-01-26 17:00:24 +01:00
Fabien Potencier
1901c84749 minor #13331 [OptionsResolver] added test for allowed values and types that default to null (Tobion)
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
2015-01-26 16:57:35 +01:00
Dawid Sajdak
58bf5822b2 Unique Entity Validator Invalid Value 2015-01-26 14:32:32 +01:00
Fabien Potencier
975b8a8f7d bug #13376 [FrameworkBundle][config] allow multiple fallback locales. (aitboudad)
This PR was merged into the 2.3 branch.

Discussion
----------

[FrameworkBundle][config] allow multiple fallback locales.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Fixed tickets  | #13373
| Doc PR        | symfony/symfony-docs#4834
| Tests pass?   | yes
| License       | MIT

Commits
-------

1251f0e [FrameworkBundle][config] allow multiple fallback locales.
2015-01-25 15:17:32 +01:00
Abdellatif Ait boudad
1251f0e0b2 [FrameworkBundle][config] allow multiple fallback locales. 2015-01-25 14:06:13 +00:00
Fabien Potencier
3015f12b20 minor #13518 [SecurityBundle] fixed tests where cleanup was not done properly (fabpot)
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
2015-01-25 10:03:10 +01:00
Fabien Potencier
155a8def14 Merge branch '2.5' into 2.6
* 2.5:
  [HttpKernel] fixed tests
2015-01-25 09:45:24 +01:00
Fabien Potencier
82130a0e55 Merge branch '2.3' into 2.5
* 2.3:
  [HttpKernel] fixed tests
2015-01-25 09:45:13 +01:00
Fabien Potencier
f853cf2dd9 [SecurityBundle] fixed tests where cleanup was not done properly 2015-01-25 07:09:57 +01:00
Fabien Potencier
51983d0583 minor #13516 [HttpKernel] fixed tests (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpKernel] fixed tests

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

a3f0299 [HttpKernel] fixed tests
2015-01-25 06:24:12 +01:00
Fabien Potencier
a3f0299d5a [HttpKernel] fixed tests 2015-01-25 06:22:15 +01:00
Fabien Potencier
29e2c0d355 Merge branch '2.5' into 2.6
* 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
2015-01-25 05:39:26 +01:00
Fabien Potencier
8f9af3a23a Merge branch '2.3' into 2.5
* 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
2015-01-25 05:37:39 +01:00
Fabien Potencier
92c7635161 bug #13473 [FrameworkBundle][xsd] added missing logging attribute. (aitboudad)
This PR was merged into the 2.6 branch.

Discussion
----------

[FrameworkBundle][xsd] added missing logging attribute.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Fixed tickets  | ~
| Tests pass?   | yes
| License       | MIT

Commits
-------

7e19fab [FrameworkBundle][xsd] added missing logging attribute.
2015-01-25 05:25:56 +01:00
Fabien Potencier
3ee74e54a4 minor #13481 [2.6] Removed dead code and various cleaning (saro0h)
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
2015-01-25 05:20:58 +01:00
Fabien Potencier
8892cf06c1 minor #13488 [2.3] Removed dead code and various cleaning (saro0h)
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
2015-01-25 05:18:27 +01:00
Fabien Potencier
aa0bf6c396 bug #12972 Make the container considered non-fresh if the environment parameters are changed (thewilkybarkid)
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/4645

Fixes #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
2015-01-25 05:04:46 +01:00
Fabien Potencier
5dd44b6f37 bug #13309 [Console] fixed 10531 (nacmartin)
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
2015-01-25 05:00:20 +01:00
Fabien Potencier
4b368937a8 bug #13352 [Yaml] fixed parse shortcut Key after unindented collection. (aitboudad)
This PR was merged into the 2.3 branch.

Discussion
----------

[Yaml] fixed parse shortcut Key after unindented collection.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Fixed tickets  | #13345, #8093, #11019 and #10885
| Tests pass?   | yes
| License       | MIT

Commits
-------

58a7426 [Yaml] fixed parse shortcut Key after unindented collection.
2015-01-25 04:54:01 +01:00
Fabien Potencier
b36900ed33 minor #13515 [Form] fixed form tests when using 2.7 deps (fabpot)
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
2015-01-25 04:35:46 +01:00
Fabien Potencier
17184f3d4f minor #13509 [2.3] [HttpFoundation] [MimeTypeGuesser] Updated exception in MimeTypeGuesser (phansys)
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]
2015-01-25 04:31:43 +01:00
Fabien Potencier
a55f5c8dda [Form] fixed form tests when using 2.7 deps 2015-01-25 04:25:09 +01:00
Javier Spagnoletti
1e4a8d55cb [2.3] [HttpFoundation] [MimeTypeGuesser]
Updated exception message in MimeTypeGuesser when no guessers available
(issue #12857).

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #12857
| License       | MIT
| Doc PR        | none
2015-01-24 20:09:16 -03:00
Fabien Potencier
6000f60190 minor #13236 Consistent spaceless nodes in form templates (peterrehm)
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
2015-01-23 20:42:42 +01:00
Fabien Potencier
52dea4b13d bug #13501 [TwigBridge] Fix bootstrap rendering when user explicitly use form_label (lyrixx)
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
2015-01-23 20:38:55 +01:00
Grégoire Pineau
717c6d1800 [TwigBridge] Fix bootstrap rendering when user explicitly use form_label 2015-01-23 12:14:04 +01:00
Giorgio Premi
b6d4390ab6 Keep "pre" meaning for var_dump quick-and-dirty debug 2015-01-22 11:07:27 +01:00
sarah khalil
dbbe170168 Removed dead code and various cleaning 2015-01-21 21:57:55 +01:00
Arrilot
538195c7f5 [Var-Dumper] css-fix 2015-01-21 23:15:29 +03:00
sarah khalil
50973bace1 Removed dead code and various cleaning 2015-01-21 21:14:55 +01:00
Fabien Potencier
77cb48e1e2 bug #13487 [VarDumper] Fixed HtmlDumper with long string (alOneh)
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
2015-01-21 19:47:28 +01:00
Hippolyte Alain
0a327eb639 Fixed HtmlDumper with long string 2015-01-21 18:40:20 +01:00
Fabien Potencier
7be7e62cfc minor #13452 [Console] Clarify method arguments (jakzal)
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.
2015-01-21 00:58:45 +01:00
Abdellatif Ait boudad
7e19fab51c [FrameworkBundle][xsd] added missing logging attribute. 2015-01-20 22:59:02 +00:00
Stefano Sala
838857c992 [Toolbar] Reset right and left .sf-toolbar-info values needed for window resize 2015-01-20 22:09:33 +01:00
Fabien Potencier
7a3332b798 Merge branch '2.5' into 2.6
* 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
2015-01-20 02:40:20 +01:00
Fabien Potencier
760553176f Merge branch '2.3' into 2.5
* 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
2015-01-20 02:39:13 +01:00
Jakub Zalas
32338af211 [Console] Make it clear that the second argument is not about command options. 2015-01-19 19:35:05 +00:00
Fabien Potencier
a38fde3fab minor #13439 [WebProfilerBundle] Minor plural/singular change (WouterJ)
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
2015-01-19 16:17:25 +01:00
Wouter J
b3cfc1abc0 Minor plural/singular change 2015-01-19 10:36:52 +01:00
Peter Rehm
41c5be672f Added the '-' character for spaceless on tag start and end to be consistent for block, if, set and for nodes 2015-01-18 15:22:12 +01:00
Fabien Potencier
aeec129c5a bug #13343 [FrameworkBundle] FormDataCollector should be loaded only if form config is enabled (hason)
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
2015-01-18 14:51:01 +01:00
Fabien Potencier
fb1732aa64 bug #12258 [FrameworkBundle] print error message if server couldn't be started (xabbuh)
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
2015-01-18 14:37:55 +01:00
Christian Flothmann
6b2537b902 print error message if server couldn't be started 2015-01-18 14:37:55 +01:00
Fabien Potencier
b8e4b4af3d bug #13039 [HttpFoundation] [Request] fix baseUrl parsing to fix wrong path_info (rk3rn3r)
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
2015-01-18 14:31:14 +01:00