This PR was submitted for the 2.5 branch but it was merged into the 2.6-dev branch instead (closes#12108).
Discussion
----------
[Routing] Moving include instruction to separate method
| Q | A
| ------------- | ---
| Bug fix? | [yes]
| New feature? | [no]
| BC breaks? | [no]
| Deprecations? | [no]
| Tests pass? | [yes]
| Fixed tickets | #12106
| License | MIT
Commits
-------
60ce31d [Routing] Moving include instruction to separate method
[HttpFoundation] fixed the docs so that it gives some explanation about how you are vulnerable to CSRF when you enable the httpMethodeParameterOverride
This PR was merged into the 2.6-dev branch.
Discussion
----------
[VarDumper] Sfdump JS ns and VarCloner replacing Ext+PhpCloner
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12140
| License | MIT
| Doc PR | -
As VarDumper is independant of the WDT, this patch creates a new JavaScript namespace used for HTML dumps.
Commits
-------
da96ad8 [VarDumper] Sfdump JS ns and VarCloner replacing Ext+PhpCloner
This PR was squashed before being merged into the 2.6-dev branch (closes#12146).
Discussion
----------
[HttpFoundation] Fix PdoSessionHandler to work properly with streams
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
Ref: https://github.com/symfony/symfony/pull/10931#discussion_r18387931
Commits
-------
9531a2b [HttpFoundation] Fix PdoSessionHandler to work properly with streams
This PR was merged into the 2.6-dev branch.
Discussion
----------
[Framework+SecurityBundle] remove recently introduced *.class parameters
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This is just a cleanup that removes `*.class` parameters introduced in the master branch (and not in the 2.5 one).
#12145 also removes the remaining params for the Debug/TwigBundle
Commits
-------
56ae544 [Framework+SecurityBundle] remove recently introduced *.class parameters
This PR was submitted for the master branch but it was merged into the 2.5 branch instead (closes#12151).
Discussion
----------
[Framework][DX] Set the proper validator class according to the configured api version
| Q | A
| ------------- | ---
| Bug fix? | [yes]
| New feature? | [no]
| BC breaks? | [no]
| Deprecations? | [no]
| Tests pass? | [yes]
| Fixed tickets | -
| License | MIT
| Doc PR | -
With this change the proper validator class will be dumped and therefore used for code completion in IDE's like PhpStorm which rely on the dumped container.
If you have 2.4 or 2.5-bc API the class will be
Symfony\Component\Validator\ValidatorInterface
If you use the 2.5 API the class will be
Symfony\Component\Validator\Validator\ValidatorInterface
I consider this also as important for the developer experience since a wrong type hint can easily cause issues since the method signatures of the validate() method have changed.
From
````php
public function validate($value, $groups = null, $traverse = false, $deep = false);
````
To
````php
public function validate($value, $constraints = null, $groups = null);
````
So if you want to validate specific groups you now have to pass them as the third argument instead of the second.
Commits
-------
eb3dd0f [Framework][DX] Set the proper validator class according to the configured api version
This PR was squashed before being merged into the 2.6-dev branch (closes#12142).
Discussion
----------
[TwigBridge] fix `DumpExtension` tests
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Make test compatible with the changes from #12125.
Commits
-------
e3332ad [TwigBridge] fix tests
This PR was squashed before being merged into the 2.6-dev branch (closes#11976).
Discussion
----------
[Yaml] Ensure whole number floats have their data type is persisted.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | Yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | no
See http://yaml.org/spec/1.1/#id858936 specifically the spec about specific data types.
Sample code that exposes the issue:
```php
$yaml = new \Symfony\Component\Yaml\Yaml();
$expected = array('float' => (float) 1);
$test = $yaml->parse($yaml->dump($expected));
if ($expected === $test) {
print "match!\n";
}
else {
var_dump($test);
}
```
This will output
```
array(1) {
'float' =>
int(1)
}
```
Commits
-------
6a507cc [Yaml] Ensure whole number floats have their data type is persisted.
This PR was merged into the 2.6-dev branch.
Discussion
----------
[VarDumper] Dynamic HTML dumper
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12109
| License | MIT
| Doc PR | -
This PR partially reverts #12109 because it didn't take into account that many dumps can share a single style tag.
More importantly, this PR enhance dump rendering with some cute JS navigation effects:
- references highlighting on hovering
- moving references toggling
Here is a screenshot (note the yellow background and the fact that `#2` appears after the first `@2`):
![capture du 2014-10-04 09 45 44](https://cloud.githubusercontent.com/assets/243674/4514936/4431c67e-4b9b-11e4-9809-8d06836be824.png)
Commits
-------
b799844 [VarDumper] Dynamic HTML dumper
This PR was merged into the 2.5 branch.
Discussion
----------
[Console] clean handling of :: passed to find()
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12104
| License | MIT
| Doc PR |
Commands cannot have a double colon in their name (for example, a command can't be named `foo::bar`). However, one might try to retrieve a `foo::bar` command from the application like this:
```php
$command = $application->find('foo::bar');
```
The `findAlternatives()` method of the `Application` class fails to handle these strings when there are commands registered with a name consisting of at least three parts (e.g. a command is named `foo:bar:baz`). In this case, an empty string is passed to `strpos()` causing PHP to raise a warning.
In a "real" Symfony application, calling `php ./app/console cache::clear` now results in the following error message:
```
[InvalidArgumentException]
There are no commands defined in the "cache:" namespace.
Did you mean this?
cache
```
Commits
-------
baab4ed clean handling of :: passed to find()
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#12130).
Discussion
----------
[FrameworkBundle] minor fix
A small fix in the "parse" function of the "ControllerNameParser" Controller.
We should use "!==" instead of "!=" since it's better and faster in this case.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | NA
| License | MIT
| Doc PR | NA
Commits
-------
cd966c6 [FrameworkBundle] minor fix
A small fix in the "parse" function of the "ControllerNameParser" Controller.
We should use "!==" instead of "!=" since it's better and faster in this case.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | NA
| License | MIT
| Doc PR | NA
This PR was submitted for the 2.5 branch but it was merged into the 2.3 branch instead (closes#12135).
Discussion
----------
[Console] add a dot
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Added a "." at the end of an InputOption description, as the rest of the InputOption descriptions have it.
Commits
-------
fb0e685 [Console] add a dot
This PR was squashed before being merged into the 2.6-dev branch (closes#12096).
Discussion
----------
Add an action to show *error* pages in kernel.debug mode
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #7446, #1486, #11327
| License | MIT
| Doc PR | symfony/symfony-docs#4293
See #7446 for the initial reasoning. In short, add to your `routing_development.yml` file the following
```yaml
_errors:
resource: "@TwigBundle/Resources/config/routing/errors.xml"
prefix: /_error
```
Then you can use `http://localhost/app_dev.php/_error/xxx` to preview the HTML *error* page that the default `ExceptionController` (from `TwigBundle`) would pick for the XXX status code.
You can also use `http://localhost/app_dev.php/_error/xxx.{some_format}` to show error pages for other formats than HTML, most notably `txt`.
Note that the status code will be 500 for all exceptions [that do not implement `HttpExceptionInterface`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Debug/Exception/FlattenException.php#L47).
##### Want to test with a custom exception?
~~Folks might want to display (part of) the exception even on error pages and thus need to work with generic (own) exceptions.~~
~~They could write an arbitrary controller and throw their exception there. By default, the `ExceptionController` would be used to handle this, only that it would not show *error* pages in `kernel.debug` mode.~~
~~Thus, a simple public setter to change the `debug` flag after construction could help. Do we want to add that as well?~~
If you want to test error pages with your own exceptions,
* create a subclass of `ExceptionController`
* set the protected `debug` flag to false
* register it as twig.exception_controller in the config
* throw your custom exception from any controller.
That should give you the error page also in `kernel.debug` mode.
##### To-Do
- [x] Update docs
- [x] Add route in symfony/symfony-default
Commits
-------
66ed177 Add an action to show *error* pages in kernel.debug mode
Commands cannot have a double colon in their name (for example, a
command can't be named `foo::bar`). However, one might try to
retrieve a `foo::bar` command from the application like this:
```php
$command = $application->find('foo::bar');
```
The `findAlternatives()` method of the `Application` class fails to
handle these strings when there are commands registered with a name
consisting of at least three parts (e.g. a command is named
`foo:bar:baz`). In this case, an empty string is passed to `strpos()`
causing PHP to raise a warning.
This PR was merged into the 2.6-dev branch.
Discussion
----------
[Validator] Fix Binary Format when maxSize is smaller than uploadLimit
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | NA
| License | MIT
| Doc PR | NA
Add a small fix to #12103.
If constraint `maxSize` is defined with base10 (K or M) and is smaller than ini `upload_max_filesize` (defined with base2 (Ki, Mi, Gi, ...) then the error message will not be nicely displayed.
Commits
-------
ef30dea Fix Binary Format when maxSize is smaller than uploadLimit
This PR was merged into the 2.6-dev branch.
Discussion
----------
[WIP] minor [Serializer] Fix CS
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
* Reverts CS breaks introduced by #12102 found by @stof and @xabbuh.
* Fix CS of `PropertyNormalizer` (missed in last commit)
Commits
-------
dffa3e4 [Serializer] Fix CS
This PR was merged into the 2.6-dev branch.
Discussion
----------
[FrameworkBundle] make assets-install --relative equivalent to --symlink --relative
| Q | A
| ------------- | ---
| Bug fix? | kinda
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
The `--relative` option of `assets:install` only makes sense when asking for symlinks. Before this change, you were forced to pass the two options: `--symlink --relative`. This PR lets you just use `--relative` and the `--symlink` option will be set for you.
This PR also fallbacks to absolute symlinks when relative ones do not work.
Commits
-------
87d4039 [FrameworkBundle] make assets-install --relative equivalent to --symlink --relative
This PR was merged into the 2.6-dev branch.
Discussion
----------
tests for the TranslatorListener
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
26b619b tests for the TranslatorListener
This PR was merged into the 2.6-dev branch.
Discussion
----------
[Validator] Display a nice upload limit message
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | NA
| License | MIT
| Doc PR | NA
Actualy when a user upload a file who exceed the upload limit, the error messag looks like `The file is too large. Allowed maximum size is 2097152 bytes.` which is not very readable.
This PR use the same method who generate the `maxSize` error message by gessing the smallest possible number.
The error message became `The file is too large. Allowed maximum size is 2 MiB.`
Commits
-------
b6e29e9 Display a nice upload limit message
This PR was merged into the 2.6-dev branch.
Discussion
----------
[VarDumper] Improved dump in html
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | http://www.w3.org/TR/html5/dom.html#the-id-attribute
| License | MIT
| Doc PR | -
Commits
-------
f214eda [VarDumper] Added unique id for every single dump in html
This PR was merged into the 2.6-dev branch.
Discussion
----------
[FrameworkBundle] enable ErrorHandler in prod
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11053, #8281
| License | MIT
| Doc PR | -
- a new debug.error_handler service is the registered PHP error handler, with ErrorHandler::register() as factory
- ErrorHandler::register() is patched so that it checks if the currently registered error handler is an instance of ErrorHandler - in which case it returns this instance and don't create a new one.
- DebugHandlersListener now listen to ConsoleEvents and re-injects fatal errors within the $app->renderException code path
- DebugHandlersListener also has a new $scream parameter to control is silenced errors are logged or not
Commits
-------
fac3cc4 [FrameworkBundle] register ErrorHandler at boot time
4acf5d3 [Debug] make screaming configurable
4d0ab7d [FrameworkBundle] enable ErrorHandler in prod