This PR was merged into the 2.7 branch.
Discussion
----------
[TwigBridge] use proper class to fetch asset version strategy property
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14692
| License | MIT
| Doc PR |
Commits
-------
01b7dd6 [TwigBridge] use proper class to fetch asset version strategy property
This PR was merged into the 2.7 branch.
Discussion
----------
[FrameworkBundle][TwigBundle] add changed debug command names to upgrade file
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Thanks to @timglabisch for noticing this in https://github.com/symfony/symfony/pull/11627#issuecomment-66521130.
Commits
-------
4443c4d add changed debug command names to upgrade file
This PR was squashed before being merged into the 2.3 branch (closes#14670).
Discussion
----------
[Security] TokenBasedRememberMeServices test to show why encoding username is required
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14577
| License | MIT
| Doc PR | no
241538d shows that it's not actually tested, 257b796 reimplements it with test.
I can remove the POC commit if it's not needed.
Commits
-------
63a9736 [Security] TokenBasedRememberMeServices test to show why encoding username is required
This PR was squashed before being merged into the 2.3 branch (closes#14678).
Discussion
----------
[Security] AbstractRememberMeServices::encodeCookie() validates cookie parts
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14577
| License | MIT
| Doc PR | no
`AbstractRememberMeServices::encodeCookie()` guards against `COOKIE_DELIMITER` in `$cookieParts`.
* it would make `AbstractRememberMeServices::cookieDecode()` broken
* all current extending classes do it anyway (see #14670 )
* added tests – it's not a public method, but it is expected to be used by user implementations – as such, it's good to know that it works properly
Commits
-------
464c39a [Security] AbstractRememberMeServices::encodeCookie() validates cookie parts
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpKernel] Handle an array vary header in the http cache store
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12118
| License | MIT
| Doc PR | -
Commits
-------
5930800 [HttpKernel] Handle an array vary header in the http cache store
This PR was merged into the 2.7 branch.
Discussion
----------
added supported format in commands supporting --format
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
replaces #14084
Commits
-------
ea874b6 added supported format in commands supporting --format
c4bf217 deprecated the --xml option for commands
This PR was merged into the 2.8 branch.
Discussion
----------
[Translator] Dump translation constants as tree instead of simple list
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets |
| License | MIT
| Doc PR |
PR #14434 for 2.8 branch
Commits
-------
29ec5ca [Translation] add options 'as_tree', 'inline' to YamlFileDumper to dump messages as tree instead of simple list.
Dump messages as tree based on '.' character as a delimeter in path.
For example this rray('foo.bar' => 'value') will be converted to array('foo' => array('bar' => 'value')).
Correctly process cases like this ['foo.bar' => 'test1', 'foo' => 'test2'].
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes#14513).
Discussion
----------
[console][formater] allow format toString object.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | ~
| Tests pass? | yes
| License | MIT
reported by @micayael ( https://twitter.com/juanardissone/status/593859683502325761 )
Commits
-------
70b4964 [console][formater] allow format toString object.
This PR was squashed before being merged into the 2.3 branch (closes#14335).
Discussion
----------
[HttpFoundation] Fix baseUrl when script filename is contained in pathInfo
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13617
| License | MIT
| Doc PR |
When the script filename is just /index.php, dirname() returns '/' for it. In Request::prepareBaseUrl() we append '/' to it (as introduced in #13039), which is wrong in this scenario as the resulting string is '//'.
When we rtrim('/') the output of dirname() then '/' would be constructed in this case, and in all other cases it makes no difference as dirname() already trims the right forward slash if there are path segments.
The test-cases should clarify the exact scenario.
Commits
-------
f24a6dd [HttpFoundation] Fix baseUrl when script filename is contained in pathInfo
This PR was squashed before being merged into the 2.8 branch (closes#14403).
Discussion
----------
[Form] deprecate read_only option
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #10658
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/3782
Replaces #10676 with a slightly different implementation.
- fixes BC break when 'read_only' => true option and at the same time custom attributes are used by using a normalizer
- adds deprecation notice
- keeps legacy tests
Commits
-------
53330e1 [Form] deprecate read_only option
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes#14593).
Discussion
----------
[Security][Firewall] Avoid redirection to XHR URIs
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
If `security.firewalls.main.form_login.always_use_default_target_path` is false, an user could be redirected to an URL called by an AJAX request after the login.
Commits
-------
9ee74ea Avoid redirection to XHR URIs
This PR was squashed before being merged into the 2.7 branch (closes#14576).
Discussion
----------
[DoctrineBridge][Form] Fix BC break in DoctrineType
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14568
| License | MIT
| Doc PR | n/a
Commits
-------
3172d73 [DoctrineBridge][Form] Fix BC break in DoctrineType
This PR was merged into the 2.7 branch.
Discussion
----------
[2.7][Form] Fixed ChoiceType with legacy ChoiceList
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14382
| License | MIT
| Doc PR |
The "Backwards compatibility" condition doesn't grap (e.g. when passing a `SimpleChoiceList` as `choice_list` on `ChoiceType`), as the default value for the `ChoiceType` option `preferred_choices` is `array()` instead of `null`. So I changed the condition from `null === $preferredChoices` to `empty($preferredChoices)`.
Then there was an issue with accessing `attr` in `form_div_layout.html.twig`, since the deprecated `Symfony\Component\Form\Extension\Core\View\ChoiceView` doesn't provide an `attr` attribute. Since the docblocks of `Symfony\Component\Form\ChoiceList\View\ChoiceListView` state `$choices` and `$preferredChoices` to be instances of `Symfony\Component\Form\ChoiceList\View\ChoiceView` instead of `Symfony\Component\Form\Extension\Core\View\ChoiceView` I fixed the template issue by mapping the deprecated `ChoiceView` objects to the new one with an empty `attr`.
@webmozart Could you have a look at it, please?
Without this PR the following example would render numeric values as labels:
```php
$formBuilder->add('choices', 'choice', array(
'choice_list' => new SimpleChoiceList(array(
'creditcard' => 'Credit card payment',
'cash' => 'Cash payment'
))
));
```
Commits
-------
a98e484 [Form] Fix ChoiceType with legacy ChoiceList
This PR was merged into the 2.7 branch.
Discussion
----------
[Console] Fix first choice was invalid when using value
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This PR solves the following issues encountered using question helper and choices questions:
- First choice was not selectable by value.
- ChoiceList with associative choices with mixed string and int keys has same issue with first choice.
- Fix inconsistency by always returning values as strings.
First point exemple:
![screenshot 2015-05-15 a 17 16 12](https://cloud.githubusercontent.com/assets/2211145/7655757/3344b39a-fb26-11e4-9fe7-0775616619bf.PNG)
Last two points are mainly edge cases. Indeed, if a QuestionChoice has something like :
```php
array(
'0' => 'No environment',
'1' => 'My environment 1',
'env_2' => 'My environment 2',
3 => 'My environment 3',
);
```
as choices, you will not be able to select the first choice and get an `InvalidArgumentException`:
```
There were 2 errors:
1) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #0 ('0', '0')
InvalidArgumentException: Value "0" is invalid
2) Symfony\Component\Console\Tests\Helper\QuestionHelperTest::testChoiceFromChoicelistWithMixedKeys with data set #1 ('No environment', '0')
InvalidArgumentException: Value "No environment" is invalid
```
Moreover, even if you were able to select by value (`No environment`), you'll get an integer instead of a string:
```
Failed asserting that '0' is identical to 0.
```
For more consistency, the solution is to always return a string.
The issue does not exist in 2.6, as the `QuestionChoice::getDefaultValidator` handled things differently.
Commits
-------
03e4ab6 [Console] Fix first choice was invalid when using value
This PR was merged into the 2.3 branch.
Discussion
----------
[DomCrawler] Throw an exception if a form field path is incomplete
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11807
| License | MIT
| Doc PR | -
Commits
-------
991e65c [DomCrawler] Throw an exception if a form field path is incomplete.
This PR was merged into the 2.7 branch.
Discussion
----------
[HttpKernel] trigger a deprecation warning when using the ContainerAwareHttpKernel
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13280
| License | MIT
| Doc PR |
I agree that we should not trigger the deprecation warning when the `ContainerAwareHttpKernel` is used in the framework code. However, developers using this class in their own code should receive a warning to be able to prepare their applications for Symfony 3.0.
Commits
-------
030731a [HttpKernel] trigger a deprecation warning when using the ContainerAwareHttpKernel
This PR was squashed before being merged into the 2.7 branch (closes#14666).
Discussion
----------
[UPGRADE] Mention the CSS strategy and it's effects
The CSS strategy, which is automatically applied to Twig CSS files as of Symfony 2.7, results in different behaviour when outputting reserved characters like `#123456`. This has to be documented in the UPGRADE file.
See https://github.com/javiereguiluz/EasyAdminBundle/pull/305 for an example.
| Q | A
| --- | ---
| Fixed tickets | -
| License | MIT
Commits
-------
8b891ff [UPGRADE] Mention the CSS strategy and it's effects
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] Delete duplicate test in CommandTest
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
The __get method is not implemented in the Command class, and the deleted test was duplicated with the preceding one.
Commits
-------
4a4eda9 [Console] Delete duplicate test in CommandTest
This PR was merged into the 2.6 branch.
Discussion
----------
[2.6] Fix HTML escaping of to-source links
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14694
| License | MIT
| Doc PR | -
Commits
-------
eecd197 [2.6] Fix HTML escaping of to-source links
e9bb160 ExceptionHandler: More Encoding
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3] Fix HTML escaping of to-source links
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
385a6b7 Fix HTML escaping of to-source links
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#14690).
Discussion
----------
[HttpFoundation] IpUtils::checkIp4() should allow `/0` networks
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | yes
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14674
| License | MIT
Technically it's a breaking change, since the result of the
IpUtils::checkIp4('1.2.3.4', '0.0.0.0/0')
call was `false` now `true`.
Practically - no one should ever relied on this since it's simply wrong
Commits
-------
921ecff [HttpFoundation] IpUtils::checkIp4() should allow networks
This PR was merged into the 2.6 branch.
Discussion
----------
Fix the rendering of deprecation log messages
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14695
| License | MIT
| Doc PR | n/a
A Twig variable was removed by mistake in #14182
Commits
-------
8b6efff Fix the rendering of deprecation log messages
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes#14681).
Discussion
----------
[FrameworkBundle] Removed unnecessary parameter in TemplateController
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | They should
| License | MIT
`Response::setPublic()` doesn't have any parameters, so this parameter call is not needed.
Commits
-------
7a4394e [FrameworkBundle] Removed unnecessary parameter in TemplateController
This PR was merged into the 2.7 branch.
Discussion
----------
[Routing] clarify deprecation message
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
as reported by @javiereguiluz in 7784b29e5a (commitcomment-11229119)
Commits
-------
8a99645 [Routing] clarify deprecation message
This PR was merged into the 2.6 branch.
Discussion
----------
Fixed the indentation in the compiled template for the DumpNode
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
The Twig codebase is very careful at making compiled templates readable by formatting them properly. This fixes a case where Symfony does not respect this careful formatting (yes, I went debugging things into my compiled template today)
Commits
-------
9106ddb Fixed the indentation in the compiled template for the DumpNode