This PR was merged into the 2.3 branch.
Discussion
----------
[Validator] Allow an empty path in a URL with only a fragment or a query
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15891
| License | MIT
| Doc PR | -
URLs like `http://symfony.com?query=1` or `http://symfony.com#` should be valid.
According to the [RFC3986](https://tools.ietf.org/html/rfc3986#page-16):
> When authority is present, the path must either be empty or begin with a slash ("/") character.
> When authority is not present, the path cannot begin with two slash characters ("//").
Since the RFC describes URIs, the second sentence doesn't apply here as the authority is required in URLs .
Commits
-------
b3a5411 [Validator] Allow an empty path in a URL with only a fragment or a query
This PR was merged into the 2.3 branch.
Discussion
----------
[filesystem] makeRelativePath does not work correctly from root
| Q | A
| ------------- | ---
| Bug fix? | yes/no
| New feature? | yes/no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #1234
| License | MIT
| Doc PR | #14066, #14067
When using `makeRelativePath`, it returns an incorrect path when trying to fetch an entry from the root:
$fs->makePathRelative('/foo/bar/baz', '/');
Actual result:
../foo/bar/baz
Expected result:
foo/bar/baz
As we have specified an absolute path, there is no point on having an `..` added. It works, because a root directory has a `..` which points to itself, but it could result in issues when the relative path is actually prefixed or concatted.
Commits
-------
791b124 fixed CS
7bb394e Added separated handling of root paths
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpFoundation] Fix some typo in the Request doc
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
481fc12 [HttpFoundation] Fix some typo in the Request doc
This PR was merged into the 2.3 branch.
Discussion
----------
[WebProfilerBundle] [toolbar] Changed profiler toolbar green color to comply with WCAG 2.0AA
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
[WebProfilerBundle] Modified green icon colors for min contrast of 4.5
(resubmitting this on the 2.3 branch. Previous PR was #15827)
Commits
-------
58f5168 [WebProfiler] [toolbar] Changed profiler toolbar color to comply with WCAG 2.0AA contrast standards
This PR was merged into the 2.3 branch.
Discussion
----------
[ci] load php_memcache.dll and apcu.so
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
2704033 [ci] load php_memcache.dll and apcu.so
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16099).
Discussion
----------
[Validator] Adds some missing validation messages translations for IT
Commits
-------
4ac8ff7 adds validation messages missing italian translations
This PR was merged into the 2.3 branch.
Discussion
----------
[phpunit] Upgrade when a change is detected and when install subcommand is used
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
When a change is merged in our local ./phpunit script, this will upgrade already installed ones.
Commits
-------
31fb362 [phpunit] Upgrade when a change is detected and when install subcommand is used
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Don't use @requires on abstract class
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
23fc32f [Process] Don't use @requires on abstract class
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3][tests] Use @requires annotation when possible
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
4061d37 [tests] Use @requires annotation when possible
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16182).
Discussion
----------
[Process] Workaround buggy PHP warning
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This temporary workaround is intended to address an uncaught exception that may occur, until https://bugs.php.net/bug.php?id=69240 is fixed.
Obviously the `@` operator is another option, but I'm erring towards the notion that the Symfony authors/maintainers may wish to implement more elegant exception-handling logic than simply using `@`.
Commits
-------
b1bd093 [Process] Workaround buggy PHP warning
This PR was squashed before being merged into the 2.3 branch (closes#16095).
Discussion
----------
[Console] Add additional ways to detect OS400 platform
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16053
| License | MIT
| Doc PR | None
This PR adds support for detecting the OS400 platform when the PHP function `php_uname()` is disabled. OS400 platform detection was added in #15058 to fix character encoding issues present on OS400. See that PR for more info.
This PR fixes regression introduced in #16053, which did not work on the IBM OS400 server I have access to. The constant `PHP_OS` being checked outputs "AIX" on my IBM OS400 server. I can't say for sure if it works on other IBM platforms... but I preserved this check just in case.
User @eloigranado [commented here](https://github.com/symfony/symfony/pull/15058#issuecomment-130743928) asking if we could switch to using `PHP_OS` constant instead of `php_uname()` because he claims some admins might "[hide] the exact kernel build from any attacker who discovers a remote PHP code execution vulnerability". I personally don't think we should accommodate this use case, but I was able to find alternate approaches.
### Why use case insensitive string matching stristr() instead of in_array()?
Here are the various outputs on my OS400 server:
echo PHP_OS; // "AIX"
echo getenv('OSTYPE'); // "os400"
echo php_uname('s'); // "OS400"
So we have various case issues here, and possible blank values on platforms where OSTYPE var doesn't exist or php_uname() is disabled. Concatenating these optional values together delimited by ; then case-insensitive searching the string for "OS400" seemed like a fair compromise. I would've probably done `in_array()` if case wasn't an issue.
Commits
-------
96a4071 [Console] Add additional ways to detect OS400 platform
This PR was merged into the 2.3 branch.
Discussion
----------
[Yaml] Allow tabs before comments at the end of a line
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
If a yml file has a tab character before a line ending comment the comment will be included in the parsed value. Yaml spec allows tab or space as whitespace characters so we need to check for tab as well. See included test.
Recently caused an odd and hard to find bug in our project.
See spec:
http://www.yaml.org/spec/1.2/spec.html#s-b-commenthttp://www.yaml.org/spec/1.2/spec.html#s-separate-in-linehttp://www.yaml.org/spec/1.2/spec.html#s-white
This is a new PR replacing https://github.com/symfony/symfony/pull/15747
@fabpot
Commits
-------
d040be7 [Yaml] Allow tabs before comments at the end of a line
This PR was merged into the 2.3 branch.
Discussion
----------
[ci] fix phpunit wrapper
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Our phpunit wrapper doing the root composer up was a mistake as it breaks testing deps=low.
Commits
-------
25fbcc3 [ci] fix phpunit wrapper
This PR was submitted for the 2.6 branch but it was merged into the 2.3 branch instead (closes#15121).
Discussion
----------
fixed#15118 [Filesystem] mirroring a symlink copies absolute file path
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15118
| License | MIT
| Doc PR |
This reverts the code change in a8b8d33e94 and adjusting the test case accordingly.
Commits
-------
a83d525fixed#15118 [Filesystem] mirroring a symlink copies absolute file path
This PR was submitted for the 2.7 branch but it was merged into the 2.3 branch instead (closes#15161).
Discussion
----------
avoid duplicated path with addPrefix
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
Having UniversalClassLoader deprecated raise various issues... and ClassLoader doesn't provide the same features... :(
This one avoid duplication of paths for a given prefix, so can improve perf is such case.
Notice: I open this PR against 2.7, first version where UniversalClassLoader is deprecated, but feel free to apply only if 2.8 or 3.0, as you prefer.
Context on how this class is used in various fedora packages, see
http://blog.remirepo.net/post/2015/06/30/PHP-SIG-autoloader
Commits
-------
af420c1 avoid duplicated path with addPrefix