* 2.6:
[travis] Use container-based infrastructure
[PropertyAccess] Fix setting public property on a class having a magic getter
ContainerInterface: unused exception dropped
Conflicts:
.travis.yml
This PR was merged into the 2.3 branch.
Discussion
----------
[travis] Use container-based infrastructure
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Let's see if this works...
Commits
-------
2aea3aa [travis] Use container-based infrastructure
This PR was merged into the 2.7 branch.
Discussion
----------
[HttpKernel] use ConfigCache::getPath() method when it exists
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
This way, the deprecated `__toString()` method of the `ConfigCache`
class will not be called.
Commits
-------
ab70632 [HttpKernel] use ConfigCache::getPath() method when it exists
This PR was merged into the 2.6 branch.
Discussion
----------
[PropertyAccess] Fix setting public property on a class having a magic getter
| 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
When using PropertyAccessor with an object having both a public property and a magic getter, and one wants to update this property, PropertyAccessor may lose the property reference.
This occurs when the public property value is a hash:
```php
class Foo
{
/**
* Example: $this->someProperty['foo']['bar'] = 'baz'
* @var array
*/
public $someProperty;
public function __get($name)
{
// ...
}
}
$obj = new Foo();
$obj->someProperty = ['foo' => ['bar' => 'some_value']];
$propertyAccessor->setValue($obj, 'someProperty[foo][bar]', 'another_value');
echo $obj->someProperty['foo']['bar'];
// Before this patch: 'some_value' => fail
// After this patch: 'another_value' => correct
```
Furthermore, public properties are always used before `__get()` by PHP.
This bug is visible since v2.6.5 as d733a887 changed the way
`setValue()` works.
Commits
-------
8b8feff [PropertyAccess] Fix setting public property on a class having a magic getter
| 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
When using PropertyAccessor with an object having both a public property
and a magic getter, and one wants to update this property,
PropertyAccessor may lose the property reference.
This occurs when the public property value is a hash:
```php
class Foo
{
/**
* Example: $this->someProperty['foo']['bar'] = 'baz'
* @var array
*/
public $someProperty;
public function __get($name)
{
// ...
}
}
$obj = new Foo();
$obj->someProperty = ['foo' => ['bar' => 'some_value']];
$propertyAccessor->setValue($obj, 'someProperty[foo][bar]', 'another_value');
echo $obj->someProperty['foo']['bar'];
// Before this patch: 'some_value' => fail
// After this patch: 'another_value' => correct
```
Furthermore, public properties are always used before `__get()` by PHP.
This bug is visible since v2.6.5 as d733a887 changed the way
`setValue()` works.
* 2.6: (21 commits)
bumped Symfony version to 2.6.8
updated VERSION for 2.6.7
updated CHANGELOG for 2.6.7
bumped Symfony version to 2.3.29
updated VERSION for 2.3.28
update CONTRIBUTORS for 2.3.28
updated CHANGELOG for 2.3.28
[Debug] Fixed ClassNotFoundFatalErrorHandlerTest
[SecurityBundle] use access decision constants in config
[SecurityBundle] use session auth constants in config
PhpDoc fix in AbstractRememberMeServices
[Filesystem] Simplified an if statement
[SecurityBundle] Use Enum Nodes Instead Of Scalar
[Debug 2.3] Fix test for PHP7
[HttpKernel] Check if "symfony/proxy-manager-bridge" package is installed
[Translation] simplify getMessages.
[Framework][Translation] added test for debug command.
Run tests on hhvm instead of hhvm-nightly
Use HTTPS in README and some other fixes
add more entropy to generated classnames
...
Conflicts:
.travis.yml
src/Symfony/Component/HttpKernel/Kernel.php
* 2.3:
bumped Symfony version to 2.3.29
updated VERSION for 2.3.28
update CONTRIBUTORS for 2.3.28
updated CHANGELOG for 2.3.28
PhpDoc fix in AbstractRememberMeServices
Conflicts:
src/Symfony/Component/HttpKernel/Kernel.php
This PR was merged into the 2.6 branch.
Discussion
----------
[Debug] Fixed ClassNotFoundFatalErrorHandlerTest
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14573
| License | MIT
| Doc PR |
Since `testCannotRedeclareClass` is skipped on case-sensitive filesystems, it won't have any effect on the travis build, but fixes the issue described in #14573 for e.g. OS X.
Commits
-------
f7def8c [Debug] Fixed ClassNotFoundFatalErrorHandlerTest
This PR was merged into the 2.3 branch.
Discussion
----------
[SecurityBundle] Use Enum Nodes Instead Of Scalar
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
ce7fb04 [SecurityBundle] Use Enum Nodes Instead Of Scalar
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#14567).
Discussion
----------
[Filesystem] Simplify if statement
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | none
Simplified the `if` statement if `Symfony\Component\Filesystem\Filesystem::isAbsolutePath`
Commits
-------
4d974ced [Filesystem] Simplified an if statement
This PR was merged into the 2.3 branch.
Discussion
----------
[HttpKernel] Check if "symfony/proxy-manager-bridge" package is installed
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
43cc877 [HttpKernel] Check if "symfony/proxy-manager-bridge" package is installed
* 2.3:
[Debug 2.3] Fix test for PHP7
Run tests on hhvm instead of hhvm-nightly
Use HTTPS in README and some other fixes
add more entropy to generated classnames
Conflicts:
src/Symfony/Component/Debug/Tests/ErrorHandlerTest.php
This PR was merged into the 2.3 branch.
Discussion
----------
[Debug 2.3] Fix test for PHP7
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
fafcb64 [Debug 2.3] Fix test for PHP7
This PR was merged into the 2.6 branch.
Discussion
----------
[Translation] simplify getMessages.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | ~
| Tests pass? | yes
| License | MIT
Commits
-------
db077c1 [Translation] simplify getMessages.
This PR was merged into the 2.6 branch.
Discussion
----------
[DebugBundle] Fix dump() output in API / No-Toolbar context
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
With this PR, dumps are written as plain text when the main content-type is not HTML.
With HTML, dumps are inlined when the web debug toolbar is not enabled.
Commits
-------
62f8469 [DebugBundle] Fix dump() output in API/No-Toolbar context
This PR was merged into the 2.3 branch.
Discussion
----------
[ProxyBridge] Fix proxy classnames generation
| 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
When having many lazy services based on the same class, proxy classnames collision is more prone to happen on cache regeneration.
The problem comes from [`ProxyDumper`](https://github.com/symfony/symfony/blob/2.3/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php#L112) usage of [`spl_object_hash`](http://php.net/manual/en/function.spl-object-hash.php), because object hashes may be reused for others when destroyed.
To solve this, I added more entropy with an optional salt to allow multiple passes of the `ProxyDumper`, each time with a value coming from the filepath of the cache we're building, so no collision could happen.
This applies from `symfony/2.3` to `symfony/2.7`.
Related tests are passing.
Commits
-------
afc39ee add more entropy to generated classnames
This PR was merged into the 2.6 branch.
Discussion
----------
[2.6][Framework][Translation] added test for debug command.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Fixed tickets | ~
| Tests pass? | yes
| License | MIT
for `2.7` #14524
Commits
-------
9a50252 [Framework][Translation] added test for debug command.
This PR was merged into the 2.7 branch.
Discussion
----------
[Serializer] Ignore \Traversable in default normalizers.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14495
| License | MIT
| Doc PR | n/a
Before the merge of #13500, default normalizers where never called for `\Traversable` objects. This PR restore the previous behavior in a cleaner way.
This is also convenient when dealing with Doctrine's ArrayCollection and serialization groups (see #14495).
ping @symfony/deciders
Commits
-------
c9bff46 [Serializer] Ignore \Traversable in default normalizers. Close#14495.
This PR was merged into the 2.6 branch.
Discussion
----------
[Translation] Fixed test
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
Since php7 version 20150301 the json error levels has changed. See http://3v4l.org/Omb8E.
This PR updated the fixture to trigger a syntax error. See http://3v4l.org/OMN7S
Commits
-------
5dca3ff Fixed test
This PR was merged into the 2.6 branch.
Discussion
----------
Fix getOrigin
I am far from sure if this is a correct fix, but I believe it is.
The problem is that `getOrigin()` now returns either the Form it was thrown in or `null`. This causes issues when using the `FormErrorIterator`, like:
```php
// note: errors are deep and flatten
foreach ($form->getErrors(true) as $error) {
echo '* '.$error->getOrigin()->getName().': '.$error->getMessage();
}
```
This now doesn't work for fields that have `error_bubbling => false` or for the root form. In that case, it'll throw an error. Even if I first checked if `getOrigin()` returned `null` or a `FormInterface`, I still had a problem: There is no way to detect which field it was bound to.
Imo, `$error->getOrigin()` should always return the Form that caused them.
/cc @webmozart would love if you can verify that I'm correct here. The form error iterator stuff is still dizzling my head...
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
01eac33 Fix getOrigin