This PR was merged into the 4.2-dev branch.
Discussion
----------
[DI] fine tune dumped factories
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Here is an optimization we forgot in the dumped container: when a private service is referenced once, there is no need to keep it in the internal registry as it will never be reused. This should help a bit the garbage collection process.
Commits
-------
88ecd0dc9a [DI] fine tune dumped factories
This PR was merged into the 3.4 branch.
Discussion
----------
[DI] Allow defining bindings on ChildDefinition
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Spotted by @stof while trying to put https://github.com/symfony/monolog-bundle/pull/254 into practice.
Binding log channels doesn't work because we put this artificial restriction in place.
Let's allow ChildDefinition to have bindings (but only at the DI extension level, loaders still forbid defining them at their level because of the parent vs _defaults ambiguity.)
Commits
-------
1c3b1055df [DI] Allow defining bindings on ChildDefinition
This PR was merged into the 2.7 branch.
Discussion
----------
Disallow invalid characters in session.name
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #27023
| License | MIT
| Doc PR |
PHP saves cookie with correct name, but upon deserialization to
`$_COOKIE`, it replaces "." characters with "_".
This is probably also reason why \SessionHandler is not able to find
a session.
https://harrybailey.com/2009/04/dots-arent-allowed-in-php-cookie-names/https://bugs.php.net/bug.php?id=75883
Commits
-------
16ebb43bd4 Disallow illegal characters like "." in session.name
This PR was merged into the 4.1 branch.
Discussion
----------
[Messenger] implement several senders using a ChainSender
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| 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 |
| License | MIT
| Doc PR |
Commits
-------
198925ee4e [Messenger] implement several senders using a ChainSender
This PR was merged into the 3.4 branch.
Discussion
----------
[HttpKernel] Fix dealing with self/parent in ArgumentMetadataFactory
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Applies CS fixes that where merged on 4.0 to 3.4, embeds a fix in ArgumentMetadataFactory, which couldn't deal with self/parent type hints.
Commits
-------
ba5cb1a245 fixed CS
* 3.4:
fix merge
[Security] Fix logout
Cleanup 2 tests for the HttpException classes
#27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
[Config] Fix tests when path contains UTF chars
[DI] Shared services should not be inlined in non-shared ones
[Profiler] Remove propel & event_listener_loading category identifiers
[Filesystem] Fix usages of error_get_last()
[Cache][Lock] Fix usages of error_get_last()
[Debug] Fix populating error_get_last() for handled silent errors
[DI] Display previous error messages when throwing unused bindings
Suppress warnings when open_basedir is non-empty
* 2.8:
[Security] Fix logout
#27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
[Profiler] Remove propel & event_listener_loading category identifiers
[Filesystem] Fix usages of error_get_last()
[Debug] Fix populating error_get_last() for handled silent errors
Suppress warnings when open_basedir is non-empty
* 2.7:
[Security] Fix logout
#27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
[Profiler] Remove propel & event_listener_loading category identifiers
[Filesystem] Fix usages of error_get_last()
[Debug] Fix populating error_get_last() for handled silent errors
Suppress warnings when open_basedir is non-empty
This PR was squashed before being merged into the 2.7 branch (closes#24805).
Discussion
----------
[Security] Fix logout
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | #6751, #7104
| License | MIT
Commits
-------
9e88eb5aa9 [Security] Fix logout
This PR was merged into the 2.7 branch.
Discussion
----------
[Process] Suppress warnings when open_basedir is non-empty
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
If PHP is configured *with a non-empty open_basedir* value that does not permit access to the target location, these calls to is_executable() throw warnings.
While Symfony may not raise exceptions for warnings in production environments, other frameworks (such as Laravel) do, in which case any of these checks causes a show-stopping 500 error.
We fixed a similar issue in the ExecutableFinder class via symfony/symfony#16182 .
This has always been an issue, but 709e15e7a3 made it more likely that a warning is triggered.
Commits
-------
34f136e01b Suppress warnings when open_basedir is non-empty
This PR was submitted for the master branch but it was merged into the 3.4 branch instead (closes#27256).
Discussion
----------
Cleanup 2 tests for the HttpException classes
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #27238
| License | MIT
| Doc PR | -
See discussion in linked issue.
Commits
-------
5516b329af Cleanup 2 tests for the HttpException classes
* 4.1:
[Messenger] Middleware factories support in config
[HttpKernel] Make TraceableValueResolver $stopwatch mandatory
[Messenger] Improve the profiler panel
[Workflow] Added DefinitionBuilder::setMetadataStore().
[Messenger][DX] Uses custom method names for handlers
[Messenger] remove autoconfiguration for Sender/ReceiverInterface
[Messenger] Make sure default receiver name is set before command configuration
[HttpKernel] Fix services are no longer injected into __invoke controllers method
Rename tag attribute "name" by "alias"
Autoconfiguring TransportFactoryInterface classes
[Messenger] Fix new AMQP Transport test with Envelope
Fixed return senders based on the message parents/interfaces
[Messenger] Make sure Sender and Receiver locators have valid services
[Workflow] add is deprecated since Symfony 4.1. Use addWorkflow() instead
[Messenger] Fix TraceableBus with envelope
Ensure the envelope is passed back and can be altered Ensure that the middlewares can also update the message within the envelope
feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)
Add more tests around the AMQP transport
This PR was squashed before being merged into the 4.1 branch (closes#27128).
Discussion
----------
[Messenger] Middleware factories support in config
| Q | A
| ------------- | ---
| Branch? | master <!-- see below -->
| 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 | N/A <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | todo
Following https://github.com/symfony/symfony/pull/26864, this would allow to configure easily the middlewares by using an abstract factory definition to which are provided simple arguments (just scalars, no services references).
For instance, here is how the DoctrineBundle would benefit from such a feature (also solving the wiring of the `DoctrineTransactionMiddleware` reverted in https://github.com/symfony/symfony/pull/26684):
```yaml
framework:
messenger:
buses:
default:
middleware:
- logger
- doctrine_transaction_middleware: ['entity_manager_name']
```
where `doctrine_transaction_middleware` would be an abstract factory definition provided by the doctrine bundle:
```yml
services:
doctrine.orm.messenger.middleware_factory.transaction:
class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddlewareFactory
arguments: ['@doctrine']
doctrine_transaction_middleware:
class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware
factory: ['@doctrine.orm.messenger.middleware_factory.transaction', 'createMiddleware']
abstract: true
# the default arguments to use when none provided from config.
# i.e:
# middlewares:
# - doctrine_transaction_middleware: ~
arguments: ['default']
```
and is interpreted as:
```yml
buses:
default:
middleware:
-
id: logger
arguments: { }
-
id: doctrine_transaction_middleware
arguments:
- entity_manager_name
default_middleware: true
```
---
<details>
<summary>Here is the whole config reference with these changes: </summary>
```yaml
# Messenger configuration
messenger:
enabled: true
routing:
# Prototype
message_class:
senders: []
serializer:
enabled: true
format: json
context:
# Prototype
name: ~
encoder: messenger.transport.serializer
decoder: messenger.transport.serializer
adapters:
# Prototype
name:
dsn: ~
options: []
default_bus: null
buses:
# Prototype
name:
default_middleware: true
middleware:
# Prototype
-
id: ~ # Required
arguments: []
```
</details>
Commits
-------
f5ef421474 [Messenger] Middleware factories support in config
This PR was merged into the 4.2-dev branch.
Discussion
----------
Minor tweak in the issue templates
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
When these templates were created I didn't realize that GitHub already displays a link to the Code of Conduct when creating issues and PRs:
![github-code-conduct](https://user-images.githubusercontent.com/73419/39987369-e0a3b05c-5764-11e8-85d4-37c1695facda.png)
I propose to remove our custom CoC links and rely on the GitHub links, which are standard for all repositories and contributors are already used to them. Thanks!
Commits
-------
c9121a33f1 Minor tweak in the issue templates