In practice the $default value could still be accessed in InputOption::VALUE_REQUIRED mode in case InputOption was never set but accessed from InputDefinition::getOption() method
This PR was squashed before being merged into the 2.3 branch (closes#17099).
Discussion
----------
[Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #5656
| License | MIT
| Doc PR |
Commits
-------
f005c80 [Form] Fixed violation mapping if multiple forms are using the same (or part of the same) property path
This PR was squashed before being merged into the 2.3 branch (closes#17719).
Discussion
----------
[DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
[DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
The ContainerBuilder class wasn't implementing the ContainerInterface interface as it should according to the Liskov substitution principle.
It caused dependency on implementation instead than on the interface when using an instance of the ContainerBuilder class.
For example this code:
```php
<?php
use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
use Symfony\Component\DependencyInjection\ContainerInterface;
/* @var $container ContainerInterface */
try {
$container->get("wrong_service_key");
} catch (ServiceNotFoundException $e) {
//action on a wrong key
}
```
works for correct implementations of the ContainerInterface interface, but the ContainerBuilder class was breaking that by throwing more abstract exceptions.
As the ServiceNotFoundException exceptions inherits from the InvalidArgumentException exception, this change shouldn't break code which catches the InvalidArgumentException exception while fetching values from a ContainerInterface interface implementation.
Commits
-------
aecb0fa [DependencyInjection] fixed exceptions thrown by get method of ContainerBuilder
The comment was previously suggesting the returned value is similar to the one stored in $_FILES, while it is more similar to the way PHP stores submitted form values. It is actually more convenient to have it this way, so rather then changing the returned value (which would break BC), it is better to clarify the comment.
This PR was merged into the 2.3 branch.
Discussion
----------
Added more exceptions to singularify method
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16532
| License | MIT
| Doc PR | -
Added exceptions for `series`, `news` and `services`.
Commits
-------
f5daa0d Added more exceptions to singularify method
This PR was merged into the 2.3 branch.
Discussion
----------
[appveyor] Ignore failures due to STATUS_ACCESS_VIOLATION errors
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15617
| License | MIT
| Doc PR | -
E.g. https://ci.appveyor.com/project/fabpot/symfony/build/1.0.5754#L1525
Commits
-------
1d4ea39 [appveyor] Ignore failures due to STATUS_ACCESS_VIOLATION errors
This PR was merged into the 2.3 branch.
Discussion
----------
[Translation] Add resources from fallback locale to parent catalogue
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
The resources representing a locale includes those of the fallback locale. However, `getCatalogue()->getResources()` only returns the resources belonging specifically to the selected locale.
Example: The locale `en_GB` falls back to `en`. I use the locale `en_GB`. During development, when I modify the `en_GB` translation file, the changes appear instantly when reloading the page. If I modify the `en` translation file, I need to manually clear the cache in order for the new translation to appear.
I believe this is a regression that was introduced in #15527.
This patch is for the 2.3 branch. For 2.6 and later, the test can be updated to use the getCatalogue() method instead of using ReflectionProperty.
Commits
-------
f7f82fa [Translation] Add resources from fallback locale
This PR was merged into the 2.3 branch.
Discussion
----------
Fix Filesystem tests on Windows
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16985
| License | MIT
| Doc PR | -
PHP's symlink function doesn't support relative symlinks on Windows. Running the filesystem tests in Windows resulted in 2 erroring tests because of this. After this PR, these tests are skipped on Windows.
The error wasn't catched by appveyor, as appveyor doesn't support symlinks at all.
Commits
-------
c376cf3 Fix FileSystem tests on Windows
This PR was merged into the 2.3 branch.
Discussion
----------
Static code analysis
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Things that done:
* fix case in method calls
* removed unused imports
* use shorter concat where it possible
* optimize some css
* removed duplicated array keys
* removed redurant return statements
* removed one-time variables
* do not pass arguments that not used in functions
Commits
-------
8db691a Static code analysis
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpKernel] Lookup the response even if the lock was released after two second wait
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
While looking into #15813 I noticed that we [wait for the lock to be released for five seconds, but then only do a lookup if the lock was released in two seconds](fa604d3c6f/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php (L540-L562)), no more.
I think it's worth to make both values the same (so either two or five seconds). I see no reason why we should wait for the lock for five seconds, but then only do a lookup if we waited for two. One way the wait either takes too long, the other way we loose the opportunity to actually return a response.
Commits
-------
9963170 [HttpKernel] Lookup the response even if the lock was released after 2 seconds
This PR was merged into the 2.3 branch.
Discussion
----------
[ClassLoader] Use symfony/polyfill-apcu
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
#17358 updated ApcClassLoader to use polyfill-apcu, but not ApcUniversalClassLoader
2.7 / 2.8 tests are in LegacyApcUniversalClassLoaderTest
Commits
-------
a0dc399 [ClassLoader] Use symfony/polyfill-apcu
This PR was squashed before being merged into the 2.3 branch (closes#16897).
Discussion
----------
[Form] Fix constraints could be null if not set
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
If the form options has no key for constraints the default should be an empty array to be ignored by the loop in the FormValidator. The default without this fix is ```null``` and foreach will throw an error.
The "Bug" also still exists in master-Branch.
Commits
-------
f80e0eb [Form] Fix constraints could be null if not set
This PR was squashed before being merged into the 2.3 branch (closes#17134).
Discussion
----------
[Finder] Check PHP version before applying a workaround for a PHP bug
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | --
| License | MIT
| Doc PR | --
Commits
-------
cba206a [Finder] Check PHP version before applying a workaround for a PHP bug
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] tag for dumped PHP objects must be a local one
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16877
| License | MIT
| Doc PR |
Commits
-------
9d03478 tag for dumped PHP objects must be a local one
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3][Process] Use stream based storage to avoid memory issues
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #17390
| License | MIT
Commits
-------
da73125 [Process] Use stream based storage to avoid memory issues
This PR was merged into the 2.3 branch.
Discussion
----------
Fixed the documentation of VoterInterface::supportsAttribute
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14655
| License | MIT
| Doc PR | -
Commits
-------
d662c2a Fixed the documentation of VoterInterface::supportsAttribute
This PR was merged into the 2.3 branch.
Discussion
----------
Fix performance (PHP5) and memory (PHP7) issues when using token_get_all
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16868
| License | MIT
| Doc PR | -
Although it's not the case anymore on PHP 7, on PHP 5, `is_array` checks are much slower than `isset` checks.
Also from @peteward in #17384:
> New PHP7 memory manager will not release small buckets to OS automatically in cases exposed by `token_get_all()`. This function call addition specifically for PHP7 will reclaim this memory to keep the footprint down of long processe
> See above ticket and suggested actions by PHP internals team for long-running tasks (https://bugs.php.net/70098) - I think `cache:clear/warmup` on a heavy app justifies this.
> We're running on cloud-based hosting platforms under memory limitations (Platform.sh). When memory is exceeded we're into swap and the cache clearing process goes from seconds to minutes for the initial deployment, which really slows our development workflow and also causes holding page delays.
Commits
-------
e555aad Add gc_mem_caches() call for PHP7 after itoken_get_all() as new memory manager will not release small buckets to OS automatically
d1f72d8 Fix perf and mem issue when using token_get_all
This PR was merged into the 2.3 branch.
Discussion
----------
[ClassLoader] Use symfony/polyfill-apcu
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Fixes APC usage on PHP 7 or when APCu bc-layer is disabled
Commits
-------
623595f [ClassLoader] Use symfony/polyfill-apcu
This PR was squashed before being merged into the 2.3 branch (closes#17326).
Discussion
----------
[Console] Display console application name even when no version set
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
When displaying help of an Application with a name but no version, it show "Console Tool" instead of the application name.
Commits
-------
61e810e [Console] Display console application name even when no version set
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] Fix tests on PHP 7.0.2
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #1234
| License | MIT
| Doc PR | -
Related to https://bugs.php.net/66179 that has been fixed in 7.0.2
Commits
-------
902f6dd [Yaml] Fix tests on PHP 7.0.2
This PR was merged into the 2.3 branch.
Discussion
----------
[Serializer] Remove normalizer cache in Serializer class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
The serializer cache the normalizer/denormalizer to use based only on the class and format. But the supportsNormalization and supportDenormalization methods can decide based on the data passed leading to hard to find bugs when the serializer used a cached normalizer it shouldn't use.
Commits
-------
8566dc1 Remove normalizer cache in Serializer class
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] recognize when a block scalar is left
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #17116
| License | MIT
| Doc PR |
The parser did not recognize when the block scalar was completely parsed
and thus treated following comments as they need to be kept leading to
parse errors on the following lines.
Commits
-------
3a22165 [Yaml] recognize when a block scalar is left
The parser did not recognize when the block scalar was completely parsed
and thus treated following comments as they need to be kept leading to
parse errors on the following lines.
This PR was merged into the 2.3 branch.
Discussion
----------
bug #14246 [Filesystem] dumpFile() non atomic
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14246
| License | MIT
| Doc PR | none
Remove race condition where `dumpFile` has written the resulting file but has not given access yet.
Commits
-------
e4015d5 bug #14246 [Filesystem] dumpFile() non atomic
This PR was merged into the 2.3 branch.
Discussion
----------
CS: use nowdoc instead of heredoc
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | —
| License | MIT
| Doc PR | —
if this is accepted, we could add the fixer to symfony level of php-cs-fixer: https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1580
Commits
-------
3dca549 use nowdoc instead of heredoc
This PR was merged into the 2.3 branch.
Discussion
----------
Do not use HttpKernel Extension when not needed
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
HttpKernel Extension only adds `addClassesToCompile`. So the class hierarchy should be slim if it's not used.
Commits
-------
4978e19 Do not use HttpKernel Extension when not needed
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] fix indented line handling in folded blocks
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #9105
| License | MIT
| Doc PR |
Commits
-------
756834c [Yaml] fix indented line handling in folded blocks
This PR was merged into the 2.3 branch.
Discussion
----------
[Config] Fix array sort on normalization in edge case
| 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
Commits
-------
eca41a8 [Config] Fix array sort on normalization in edge case
This PR was merged into the 2.3 branch.
Discussion
----------
improve BrowserKit test coverage p1
Hi,
This PR improves BrowserKit test coverage.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
I rebased previous PR https://github.com/symfony/symfony/pull/16549 to 2.3
Commits
-------
0261b48 improve BrowserKit test coverage p1
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] More robustness and deterministic tests
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16988, #15617
| License | MIT
| Doc PR | -
Commits
-------
d1a178a [Process] More robustness and deterministic tests
This PR was merged into the 2.3 branch.
Discussion
----------
[Security] skip bcrypt tests on incompatible platforms
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #17055
| License | MIT
| Doc PR |
Not all PHP versions before 5.3.7 have backported fixes that make it
possible to use `password_hash()` function. Therefore, we have to skip
tests on not supported platforms.
Commits
-------
2a6fa7b use requires annotation
65eb188 skip bcrypt tests on incompatible platforms
Not all PHP versions before 5.3.7 have backported fixes that make it
possible to use `password_hash()` function. Therefore, we have to skip
tests on not supported platforms.
The test introduced in #16797 used the `assertFilePermissions()` method
to test for the expected result. This worked quite well for the PR as it
was submitted for the `master` branch. However, the tests now fail on
2.3 as the `FilesystemTestCase` class which contains this method was
introduced with Symfony 2.4.
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] Avoid extra blank lines when rendering exceptions
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Don't know if it can be considered as a bug fix as it is the behavior since a while (https://github.com/symfony/symfony/pull/9055), but I let you see by yourself the old vs new rendering:
![Console exception rendering](https://cloud.githubusercontent.com/assets/2211145/11857447/92cebfbe-a458-11e5-9d3d-6147b0338080.PNG)
Commits
-------
2e158df [Console] Avoid extra blank lines when rendering exceptions
This PR was merged into the 2.3 branch.
Discussion
----------
[Security] Verify if a password encoded with bcrypt is no longer than 72 characters
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #17047
| License | MIT
| Doc PR | -
From the [password_hash() docs](http://php.net/password_hash):
> Caution Using the PASSWORD_BCRYPT as the algorithm, will result in the password parameter being truncated to a maximum length of 72 characters.
Commits
-------
0a496e7 [Security] Enable bcrypt validation and result length tests on all PHP versions
5c30266 [Security] Verify if a password encoded with bcrypt is no longer than 72 characters
This PR was squashed before being merged into the 2.3 branch (closes#16959).
Discussion
----------
[Form] fix#15544 when a collection type attribute "required" is false, "prototype" should too
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15544
| License | MIT
| Doc PR | -
Commits
-------
b4b5d63 [Form] fix#15544 when a collection type attribute "required" is false, "prototype" should too
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] do not remove "comments" in scalar blocks
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12478, #15857
| License | MIT
| Doc PR |
Inside scalar blocks, lines starting with a `#` character must be
treated like every other strings and must not be ignored as comments.
Commits
-------
3c72fcc [Yaml] do not remove "comments" in scalar blocks
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpFoundation] Added the ability of using BinaryFileResponse with stream wrappers
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12990#13187
| License | MIT
| Doc PR | ~
Commits
-------
1da3d61 [HttpFoundation] Added the ability of mapping stream wrapper protocols when using X-Sendfile
dd129b7 [HttpFoundation] Add a test case for using BinaryFileResponse with stream wrappers