* origin/4.3:
deprecate calling createChildContext without the format parameter
[EventDispatcher] Fix interface name used in error messages
[FrameworkBundle] Add cache configuration for PropertyInfo
Update dependencies in the main component
Drop useless executable bit
[Doctrine][PropertyInfo] Detect if the ID is writeable
Add transport in subscriber's phpdoc
[Validator] Autovalidation: skip readonly props
[DI] default to service id - *not* FQCN - when building tagged locators
[Cache] Log a more readable error message when saving into cache fails
Update WorkflowEvents.php
[Messenger] On failure retry, make message appear received from original sender
[Messenger] remove send_and_handle option which can be achieved with SyncTransport
Fixing tests - passing pdo is not wrapped for some reason in dbal
Changing how RoutableMessageBus fallback bus works
[Serializer] Fix BC break: DEPTH_KEY_PATTERN must be public
[FrameworkBundle] Fixed issue when a parameter container a '%'
Fix the interface incompatibility of EventDispatchers
[TwigBundle] fixed Mailer integration in Twig
[Form] Add intl/choice_translation_locale option to TimezoneType
This PR was submitted for the master branch but it was merged into the 4.3 branch instead (closes#31030).
Discussion
----------
[Serializer] Deprecate calling createChildContext without the format parameter
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
as discussed in #30907 deprecate omitting the format parameter when extending the AbstractNormalizer.
Commits
-------
cb77902805 deprecate calling createChildContext without the format parameter
This PR was merged into the 4.3 branch.
Discussion
----------
[EventDispatcher] Fix interface name used in error messages
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
Forgotten in #31459
Commits
-------
38cad41a0a [EventDispatcher] Fix interface name used in error messages
This PR was submitted for the 4.3 branch but it was merged into the 4.4-dev branch instead (closes#31420).
Discussion
----------
[Console] optimisation getting the command when finding
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | none <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR |
<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
- Bug fixes must be submitted against the lowest 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 the master branch.
-->
Following discussion with @chalasr in here https://github.com/symfony/symfony/pull/31261#discussion_r281033178, first commit will be deleted when the other PR is merged.
Commits
-------
3d6b30330e [Console] Optimisation on getting the command
This PR was merged into the 4.3 branch.
Discussion
----------
Fix the interface incompatibility of EventDispatchers
The `LegacyEventDispatcherProxy` now implements the full
`EventDispatcherInterface` from the `EventDispatcherBundle`.
Before it just implemented the Interface from the `Contracts` Bundle,
that made it incompatible with the `WrappedListener`.
This fixes#31457.
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #31457
| License | MIT
| Doc PR | /
Commits
-------
bdeeae1510 Fix the interface incompatibility of EventDispatchers
This PR was merged into the 4.3 branch.
Discussion
----------
[DI] default to service id - *not* FQCN - when building tagged locators
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | -
| License | MIT
| Doc PR | -
While reviewing #30926 I realized that defaulting to the FQCN is a shortcut that isn't useful enough.
Defaulting to the service id provides the same experience in practice because service ids are FQCN by default.
But when they aren't, the service id is the proper index to default to when building the locator.
Commits
-------
52e827c9cf [DI] default to service id - *not* FQCN - when building tagged locators
This PR was merged into the 4.3 branch.
Discussion
----------
[Messenger] Add `from_transport` in subscriber's phpdoc
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | ø
| BC breaks? | ø
| Deprecations? | ø
| Tests pass? | yes
| Fixed tickets | #30958
| License | MIT
| Doc PR | ø
Add the `from_transport` to the subscriber's phpdoc as it was missed from the original PR.
Commits
-------
6a542cd738 Add transport in subscriber's phpdoc
This PR was merged into the 4.3 branch.
Discussion
----------
[Form] Add intl/choice_translation_locale option to TimezoneType
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | #28836
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/issues/11503
final step :)
for now i think any form of grouping is a user concern (i.e. by GMT offset or area name); see #31293 + #31295
having a special built in `group_by' => 'gmt_offset'` util would be nice, and can be done in the future.
includes #31434
Commits
-------
001b930611 [Form] Add intl/choice_translation_locale option to TimezoneType
This PR was squashed before being merged into the 4.3 branch (closes#31452).
Discussion
----------
[FrameworkBundle] Add cache configuration for PropertyInfo
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? |
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
The PropertyInfoExtractor was not cached by default but the class to do it was surprisingly here, unused.
I've added the configuration to enable it by default when it's not the development environment.
I haven't added the warmup part because there are too much arguments for the methods (class, property, context).
It will be a big boost for the performance! For this code:
```php
$book = $this->serializer->deserialize('{"id":3,"reviews":[{"id": 7, "body": "This book is fantastic!", "rating": 9, "letter": "A", "publicationDate": "2019"}],"isbn":"978-0-5533-9243-2","title":"Fool\'s Assassin","description":"A famous saga","author":"Robin Hobb","publicationDate":"2014"}', Book::class, 'json');
$this->serializer->serialize($book, 'json');
```
We obtain this:
![image](https://user-images.githubusercontent.com/10920253/57487994-2874d000-72b2-11e9-92a2-28b14a038194.png)
The Blackfire comparison is here: https://blackfire.io/profiles/compare/2c746d26-320a-4aab-80ef-7276c2e92b96/graph
Commits
-------
17f6225d0f [FrameworkBundle] Add cache configuration for PropertyInfo
This PR was merged into the 4.3 branch.
Discussion
----------
[Doctrine][PropertyInfo] Detect if the ID is writeable
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | yes <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | yes/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
Companion of #31481. Allows to detect that ids with a generated value aren't writable (because the DBMS will generate the ID by itself). It could be considered as a bug fix or as a new feature. I prefer to not merge in in 3.4. However, it becomes necessary for autovalidation to work with such entities, so it should be in 4.3:
```php
/**
* @Entity
*/
class Foo
{
/**
* @Id
* @GeneratedValue(strategy="AUTO")
* @Column(type="integer")
*/
public $id;
}
```
Commits
-------
4598235192 [Doctrine][PropertyInfo] Detect if the ID is writeable
This PR was merged into the 4.3 branch.
Discussion
----------
[Validator] Autovalidation: skip readonly props
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | no
| 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
Read-only properties (such as an autogenerated ID) must be skipped during the validation (it makes no sense to validate a RO property anyway).
This is an allowed BC break because this feature will be introduced in 4.3.
Commits
-------
e7dc5e1045 [Validator] Autovalidation: skip readonly props
This PR was squashed before being merged into the 4.3 branch (closes#31480).
Discussion
----------
Update dependencies in the main component
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR |
The doctrine/collections and psr/simple-cache dependencies have already been demoted to require-dev in the relevant components.
BTW, I wonder if symfony/mailer (and symfony/*-mailer bridges) should be provided in the main composer.json too.
Commits
-------
96f4626952 Update dependencies in the main component
This PR was merged into the 4.3 branch.
Discussion
----------
Drop useless executable bit
The files were added as executable via #28477.
| Q | A
| ------------- | ---
| Branch? | 4.3
| 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
-------
79058633ca Drop useless executable bit
This PR was merged into the 4.3 branch.
Discussion
----------
[FrameworkBundle] Fixed issue when a parameter contains a '%'
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #31431
| License | MIT
| Doc PR |
---
On my computer:
```
dump(get_cfg_var('xdebug.file_link_format'));
"subl://%f:%l"
```
When I ran `bin/console debug:config framework` I got this exception:
```
In ParameterBag.php line 100:
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
The parameter "templating.helper.code.file_link_format" has a
dependency on a non-existent parameter "f:".
Exception trace:
() at
/home/gregoire/dev/github.com/lyrixx/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php:100
...
```
This issue was introduced [here](https://github.com/symfony/symfony/pull/27684/files#diff-b3847149480405e1de881530b4c75ab5L212) / cc @ro0NL
This PR does not really fix the issue: I'm able to debug the config, The
the `debug:container --env-vars` does not work anymore. How could we fix
both issue? cc @nicolas-grekas
Commits
-------
7bcd714381 [FrameworkBundle] Fixed issue when a parameter container a '%'
This PR was merged into the 4.3 branch.
Discussion
----------
[Cache] Log a more readable message when trying to cache an unsupported type
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | #29710 <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR |
Improved the warning risen when trying to save something that has a non-supported type in the Simple cache.
For instance, let's say the following code:
```php
class TestCommand extends Command
{
private $cache;
public function __construct(CacheInterface $cache)
{
parent::__construct();
$this->cache = $cache;
}
// ...
protected function execute(InputInterface $input, OutputInterface $output)
{
$n = $this->cache->get('n', function () {
return function () {
return rand(0,10);
};
});
dump($n());
}
}
```
Running this code will give the following:
```
14:32:03 WARNING [cache] Could not save key "n" in cache: the Closure type is not supported.
0
```
Commits
-------
21ba3c07a0 [Cache] Log a more readable error message when saving into cache fails
This PR was submitted for the master branch but it was merged into the 4.3 branch instead (closes#31469).
Discussion
----------
[Workflow] Update WorkflowEvents typo
| Q | A
| ------------- | ---
| Branch? | <!-- see below -->
| 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 | #... <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
Some little typo
Maybe to do for other branches?
Commits
-------
6583e5a1d7 Update WorkflowEvents.php
This PR was merged into the 4.3 branch.
Discussion
----------
[Messenger] remove send_and_handle which can be achieved with SyncTransport
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | no
| New feature? | yes/no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks? | yes <!-- 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 | https://github.com/symfony/symfony-docs/issues/11236
The send_and_handle option is pretty awkward and we don't need it anymore because the same thing can be achieved with the SyncTransport from #30759
So the following example from the doc in https://symfony.com/doc/current/messenger.html#routing
```yaml
framework:
messenger:
routing:
'My\Message\ThatIsGoingToBeSentAndHandledLocally':
senders: [amqp]
send_and_handle: true
```
is the same as
```yaml
framework:
messenger:
routing:
'My\Message\ThatIsGoingToBeSentAndHandledLocally':
senders: [amqp, sync]
```
https://github.com/symfony/symfony/pull/31401#pullrequestreview-235396370
Commits
-------
4552b7f5b2 [Messenger] remove send_and_handle option which can be achieved with SyncTransport
This PR was squashed before being merged into the 4.3 branch (closes#31425).
Discussion
----------
[Messenger] On failure retry, make message appear received from original sender
| Q | A
| ------------- | ---
| Branch? | master (4.3)
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #31413
| License | MIT
| Doc PR | symfony/symfony-docs#11236
Fixes a bug when using the transport-based handler config from #30958. This also adds a pretty robust integration test that dispatches a complex message with transport-based handler config, failures, failure transport, etc - and verifies the correct behavior.
Cheers!
Commits
-------
80b5df270f [Messenger] On failure retry, make message appear received from original sender
This PR was merged into the 4.3 branch.
Discussion
----------
[Messenger] Fix routable message bus default bus
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | not needed
In #31288, we gave the `RoutableMessageBus` a "default" bus. We did that by using the `MessageBusInterface` service in the locator. But, no such service exists - I think that was just a huge oversight (and maybe @dirk39 named a bus this in the project he was testing on?). The services in the locator are very simply the keys under `framework.messenger.buses` or the default, which is a single `messenger.bus.default` id. There is an alias in the container for `MessageBusInterface`, but this is not added to the locator (and adding it would be a bit awkward, as `MessengerPass` is in the component and the interface alias is entirely a framework thing).
Cheers!
Commits
-------
42e0536d8f Changing how RoutableMessageBus fallback bus works
This PR was merged into the 4.3 branch.
Discussion
----------
[Messenger] Fix doctrine tests
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | not needed
Not sure why, but when passing in `pdo`, the Doctrine `Connection::_conn` property is a PDO instance and isn't wrapped. In the master branch of `doctrine/dbal`, they now check for this an throw an exception.
@nicolas-grekas has a PR in Doctrine for this (https://github.com/doctrine/dbal/pull/3543), but I don't see any reason we shouldn't just avoid the `pdo` option entirely.
Commits
-------
a7cf3f997a Fixing tests - passing pdo is not wrapped for some reason in dbal
This PR was merged into the 4.3 branch.
Discussion
----------
[Serializer] Fix BC break: DEPTH_KEY_PATTERN must be public
| 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
Fix a BC break introduced by #30888. This constant is used by API Platform.
Commits
-------
1bdf2af0da [Serializer] Fix BC break: DEPTH_KEY_PATTERN must be public
On my computer:
```
dump(get_cfg_var('xdebug.file_link_format'));
"subl://%f:%l"
```
When I ran `bin/console debug:config framework` I got this exception:
```
In ParameterBag.php line 100:
[Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]
The parameter "templating.helper.code.file_link_format" has a
dependency on a non-existent parameter "f:".
Exception trace:
() at
/home/gregoire/dev/github.com/lyrixx/symfony/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php:100
...
```
This issue was introduced
[here](https://github.com/symfony/symfony/pull/27684/files#diff-b3847149480405e1de881530b4c75ab5L212)
The `LegacyEventDispatcherProxy` now implements the full
`EventDispatcherInterface` from the `EventDispatcherBundle`.
Before it just implemented the Interface from the `Contracts` Bundle,
that made it incompatible with the `WrappedListener`.
This fixes#31457.
This PR was merged into the 4.3 branch.
Discussion
----------
[TwigBundle] Fix Mailer integration in Twig
| 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 | #31449
| 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 the master branch.
-->
Commits
-------
53b68afec4 [TwigBundle] fixed Mailer integration in Twig
This PR was merged into the 4.2 branch.
Discussion
----------
Remove deprecated usage of some Twig features
| Q | A
| ------------- | ---
| Branch? | 4.2
| 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
<!--
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 the master branch.
-->
Commits
-------
74afcd6777 removed deprecated usage of some Twig features