This PR was squashed before being merged into the 3.4 branch (closes#32215).
Discussion
----------
[HttpFoundation] Throw exception when the "session" extension is not loaded
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #31305
| License | MIT
Should I target `3.4` or `master` instead? This change does not alter behavior, but makes the failure more clear.
Commits
-------
b0c663071b [HttpFoundation] Throw exception when the \"session\" extension is not loaded
This PR was merged into the 3.4 branch.
Discussion
----------
[Validator] remove invalid test cases
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Spotted while working on #32179 for the Validator component. Using property paths for comparison when validating arrays simply does not work.
Commits
-------
d1261e78a4 remove invalid test cases
This PR was merged into the 3.4 branch.
Discussion
----------
[Validator] pass error code as a string
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
901fe0d7c5 pass error code as a string
This PR was merged into the 3.4 branch.
Discussion
----------
[Serializer] Fixed PHP of DenormalizableInterface::denormalize
It can return an array of objects
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
379bbee370 [Serializer] Fixed PHP of DenormalizableInterface::denormalize
ContextFactory::createFromReflector is heavy, and it's called redundanlty
by Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor for each property
and methods. Avoid that by parsing it only once and then use static cache
* 4.3:
fix Debug component dependencies
[travis] not all components have a master branch
[HttpKernel] Add @method PHPDoc for getRequest and getResponse back to Client
This PR was merged into the 4.4 branch.
Discussion
----------
[Routing] Deprecate RouteCollection::addPrefix(null)
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #32179
| License | MIT
| Doc PR | N/A
This PR deprecates the undocumented possibility to pass `null` as prefix to `RouteCollection::addPrefix()`. This allows us to add a `string` type-hint on the parameter in 5.0, see https://github.com/symfony/symfony/pull/32181#discussion_r298419954
/cc @Tobion
Commits
-------
2a88752cd6 [Routing] Deprecate RouteCollection::addPrefix(null).
This PR was merged into the 3.4 branch.
Discussion
----------
Catch JsonException and rethrow in JsonEncode
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | adjustment to implementation of previous PRs for issue #31447
| License | MIT
| Doc PR | not applicable
PR #31860 provided handling of PHP 7.3 `JSON_THROW_ON_ERROR` behavior in the various `JsonEncode` and related classes/methods.
PR #31869 adjusted that. In particular, it adjusted ` src/Symfony/Component/Serializer/Encoder/JsonDecode.php` so that it catches any `JsonException` and re-throws it as `NotEncodableValueException`. That preserves the previous behavior of `JsonDecode:decode` - it always throws `NotEncodableValueException` when something goes wrong.
IMO `JsonEncode:encode` needs the same logic. At the moment, if a caller specifies `JSON_THROW_ON_ERROR` then the method can throw `JsonException`, but actually the "standard" for `JsonEncode:encode` is that it throws `NotEncodableValueException`
Adjust `JsonEncode:encode` to catch `JsonException` and rethrow it as `NotEncodableValueException`
Commits
-------
9c76790ee8 Catch JsonException and rethrow in JsonEncode
This PR was merged into the 4.3 branch.
Discussion
----------
[HttpKernel] Add @method PHPDoc for getRequest and getResponse back to Client
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
As the deprecated `Symfony\Component\HttpKernel\Client` does not extend `Symfony\Component\HttpKernel\HttpKernelBrowser`, it has not retained the correct PHPDoc from before.
The order of inheritance was changed in https://github.com/symfony/symfony/pull/31881, but the PHPDoc was never restored.
Commits
-------
332135186a [HttpKernel] Add @method PHPDoc for getRequest and getResponse back to Client
This PR was merged into the 4.4 branch.
Discussion
----------
[ErrorCatcher] some cleanup and better doc
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
a609f57c03 [ErrorCatcher] some cleanup and better doc
This PR was squashed before being merged into the 4.4 branch (closes#32221).
Discussion
----------
[ErrorCatcher] Make IDEs and static analysis tools happy
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/roadmap):
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against branch 4.4.
- Legacy code removals go to the master branch.
-->
Commits
-------
f511bc5ff6 deprecated FlattenException::create()
7dd9dbf28d [ErrorHandler] made IDEs and static analysis tools happy
This PR was merged into the 4.4 branch.
Discussion
----------
Rename the ErrorHandler component to ErrorCatcher
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/roadmap):
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against branch 4.4.
- Legacy code removals go to the master branch.
-->
Commits
-------
b6eac3f861 renamed the ErrorHandler component to ErrorCatcher
* 4.3:
[Mailer] fixed tests on Windows
[PhpUnitBridge] fix tests
[Mailer] fixed error message when connecting to a stream raises an error before connect()
[Mailer] fixed timeout type hint
improve error messages in the event dispatcher
[Security/Core] work around sodium_compat issue
bumped Symfony version to 4.3.3
updated VERSION for 4.3.2
updated CHANGELOG for 4.3.2
bumped Symfony version to 4.2.11
updated VERSION for 4.2.10
updated CHANGELOG for 4.2.10
bumped Symfony version to 3.4.30
updated VERSION for 3.4.29
update CONTRIBUTORS for 3.4.29
updated CHANGELOG for 3.4.29
Fixed type annotation.
This PR was merged into the 4.3 branch.
Discussion
----------
[Mailer] fix tests on Windows
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/roadmap):
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against branch 4.4.
- Legacy code removals go to the master branch.
-->
Commits
-------
90f61e9efa [Mailer] fixed tests on Windows
This PR was merged into the 3.4 branch.
Discussion
----------
[travis] not all components have a master branch
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
b73025a4c6 [travis] not all components have a master branch
This PR was merged into the 4.4 branch.
Discussion
----------
Make BuferringLogger classes internal and final
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
The `BufferingLogger` classes are internal code that nobody should use directly. Let's make it clear.
Commits
-------
7dd391ed97 made BuferringLogger classes internal and final
This PR was merged into the 4.4 branch.
Discussion
----------
Add ErrorHandler component
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | no
| Fixed tickets | #25905, #26448
| License | MIT
| Doc PR | TODO
Mainly for API-based apps that don't require TwigBundle to get the correct exception response according to the request format (aka `_format` attribute).
![exception_response](https://user-images.githubusercontent.com/2028198/55509651-713dc700-562a-11e9-8b98-bef3b0229397.gif)
✔️ [RFC7807](https://tools.ietf.org/html/rfc7807) compliant for JSON and XML formats.
---
This introduce a new `ErrorRenderer` service that render a `FlattenException` into a given format:
```php
use Symfony\Component\ErrorHandler\ErrorRenderer\ErrorRenderer;
use Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer;
use Symfony\Component\ErrorHandler\ErrorRenderer\JsonErrorRenderer;
$renderers = [
new HtmlErrorRenderer(),
new JsonErrorRenderer(),
// ...
];
$errorRenderer = new ErrorRenderer($renderers);
return new Response(
$errorRenderer->render($exception, $request->getRequestFormat()),
$exception->getStatusCode(),
$exception->getHeaders()
);
```
The built-in error renderers are:
| Format | Class |
| --- | --- |
| html | HtmlErrorRenderer |
| json | JsonErrorRenderer |
| xml, atom | XmlErrorRenderer |
| txt | TxtErrorRenderer |
And you can add your own error renderer by implementing the `ErrorRendererInterface` and tagging it with `error_handler.renderer` in your service definition.
Creating your own error renderer for a built-in format will end up replacing the related built-in error renderer.
Demo: https://github.com/yceruto/error-handler-app ([add custom error renderer](06fc647841))
Commits
-------
7057244890 Added ErrorHandler component
This PR was merged into the 4.3 branch.
Discussion
----------
[Mailer] Fix error message when connecting to a stream raises an error before connect()
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | see https://github.com/swiftmailer/swiftmailer/issues/1201
| License | MIT
| Doc PR | n/a
According to the PHP docs, "If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call.".
Using the `@` operator means that we get a generic error message without any clues about why connection cannot be done. Using an error handler allows to get the real issue.
Commits
-------
eb15bffa78 [Mailer] fixed error message when connecting to a stream raises an error before connect()
This PR was merged into the 4.3 branch.
Discussion
----------
[Mailer] Fix timeout type hint
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
The timeout on a socket is a float, not an integer.
Commits
-------
0e7ed9e45c [Mailer] fixed timeout type hint
* 4.2:
[Security/Core] work around sodium_compat issue
bumped Symfony version to 4.2.11
updated VERSION for 4.2.10
updated CHANGELOG for 4.2.10
bumped Symfony version to 3.4.30
updated VERSION for 3.4.29
update CONTRIBUTORS for 3.4.29
updated CHANGELOG for 3.4.29
* 3.4:
[Security/Core] work around sodium_compat issue
bumped Symfony version to 3.4.30
updated VERSION for 3.4.29
update CONTRIBUTORS for 3.4.29
updated CHANGELOG for 3.4.29