This PR was merged into the 5.3-dev branch.
Discussion
----------
[PasswordHasher] fix copy paste typos from UserPasswordEncoderInterface
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
Fix typos introduced when extracting the PasswordHasher component from `UserPasswordEncoderInterface` abeb8e4ca9/src/Symfony/Component/Security/Core/Encoder/UserPasswordEncoderInterface.php (L36)
Discovered in 5.3.0BETA1.
Commits
-------
dfc3584fb7 [PasswordHasher] fix copy paste typos from UserPasswordEncoderInterface
* 5.2:
make fabbot happy
use correct spelling when accessing the SMTP php.ini value
Fix issue 40507: Tabs as separators between tokens
[Cache] phpredis: Added full TLS support for RedisCluster
[DependencyInjection][AliasDeprecatedPublicServicesPass] Noop when the service is private
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] make fabbot happy
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
9826c05928 make fabbot happy
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] Allow tabs as separators between tokens
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#40507
| License | MIT
| Doc PR | None
As described in #40507, the Yaml spec allows tabs as whitespace characters between tokens. However, the Yaml parser crashes on this as it only expects spaces after the colon. https://yaml.org/spec/1.2/spec.html#id2778241
While I'm not a huge fan of it personally, it's an issue when a different linter tells us that a given YAML file with content that we have little control over has valid syntax in an unrelated check, and then our app crashes because it cannot be parsed after all.
Commits
-------
9a130ae93e Fix issue 40507: Tabs as separators between tokens
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] Move ProviderTestCase out of the Tests namespace
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Because the `Tests` namespace is stripped from our distribution packages, the new Loco translation bridge cannot use the abstract `ProviderTestCase` class. This PR suggests to move it into a dedicated `Test` namespace to make it reusable for the Loco bridge and potential future bridges.
Commits
-------
c1ec38fdb8 [Translation] Move ProviderTestCase out of the Tests namespace
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Improve exception messages when extension could not be found
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
The error message we currently get if we are using some `AcmeSocialConifg` (bundle is not installed) is currently not perfect. Here are the suggested changes
```diff
In FileLoader.php line 174:
- Could not resolve argument "Symfony\Config\AcmeSocialConfig acmeSocial" for
+ Could not resolve argument "Symfony\Config\AcmeSocialConfig $acmeSocial" for
"app/config/packages/acme_social.php" in app/config/packages/acme_social.php
(which is loaded in resource "app/config/p ackages/acme_social.php").
In PhpFileLoader.php line 124:
- Could not resolve argument "Symfony\Config\AcmeSocialConfig acmeSocial" for
+ Could not resolve argument "Symfony\Config\AcmeSocialConfig $acmeSocial" for
"app/config/packages/acme_social.php".
In PhpFileLoader.php line 167:
There is no extension able to load the configuration for "Symfony\Config\AcmeSocialConfig".
- Looked for namespace "Symfony\Config\AcmeSocialConfig", found "framework",
+ Looked for namespace "acme_social", found "framework",
"sensio_framework_extra","twig", "web_profiler", "monolog ", "debug", "maker", "doctrine",
"doctrine_migrations", "security", "twig_extra", "mercure", "webpack_encore".
```
Commits
-------
187562f385 [Config] Improve exception messages
This PR was merged into the 5.3-dev branch.
Discussion
----------
[FrameworkBundle] Deprecate creating public workflow services
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
AFAIK, workflow services don't need to be public. friendly ping to @lyrixx as a reviewer.
Commits
-------
79cbf005da [FrameworkBundle] Deprecate creating public workflow services
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Make sure one can build cache on Windows and then run in (Docker) Linux
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
The generated ConfigBuilders should use the `\DirectorySeparator` constant. The resulting string will look like this:
```php
<?php
namespace Symfony\Config;
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'GlobalConfig.php';
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'DateConfig.php';
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'NumberFormatConfig.php';
/**
* This class is automatically generated to help creating config.
*
* @experimental in 5.3
*/
class TwigConfig implements \Symfony\Component\Config\Builder\ConfigBuilderInterface
{
private $formThemes;
```
Commits
-------
555c7dda48 [Config] Make sure one can build cache on Windows and then run in (Docker) Linux
This PR was squashed before being merged into the 5.3-dev branch.
Discussion
----------
[Config] Use plural name on array values
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR | Related: https://github.com/symfony/symfony-docs/pull/15264
If we have a PrototypedArrayNode and the prototype is does not have a key (`->useAttributeAsKey('name')`). Then we know for sure that the value should be an array.
See this example from `$framework->assets()`
```diff
/**
+ * @param list<mixed>
* @return $this
*/
- public function baseUrl($value): self
+ public function baseUrls(array $value): self
{
$this->baseUrls = $value;
return $this;
}
```
Commits
-------
f564a7a11a [Config] Use plural name on array values
This PR was merged into the 5.3-dev branch.
Discussion
----------
[DependencyInjection] Improve autowiring errors when named autowiring aliases exist
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Before:
`Cannot autowire service "App\Controller\HelloController": argument "$workflow" of method "__construct()" references interface "Symfony\Component\Workflow\WorkflowInterface" but no such service exists. You should maybe alias this interface to one of these existing services: "state_machine.pull_request", "state_machine.comment".`
After:
`Cannot autowire service "App\Controller\HelloController": argument "$workflow" of method "__construct()" references interface "Symfony\Component\Workflow\WorkflowInterface" but no such service exists. Available autowiring aliases for this interface are: "$pullRequestStateMachine", "$commentStateMachine".`
/cc `@lyrixx` `@weaverryan`
Commits
-------
88eb0b57c1 [DependencyInjection] Improve autowiring errors when named autowiring aliases exist
This PR was merged into the 5.3-dev branch.
Discussion
----------
[DependencyInjection] Add `#[Target]` to tell how a dependency is used and hint named autowiring aliases
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Right now, when one wants to target a specific service in a list of candidates, we rely on the name of the argument in addition to the type-hint, eg:
`function foo(WorkflowInterface $reviewStateMachine)`
The deal is that by giving the argument a name that matches the target use case of the required dependency, we make autowiring more useful.
But sometimes, being able to de-correlate the name of the argument and the purpose is desired.
This PR introduces a new `#[Target]` attribute on PHP8 that allows doing so. The previous example could be written as such thanks to it:
`function foo(#[Target('review.state_machine')] WorkflowInterface $workflow)`
That's all folks :)
Commits
-------
cc76eab795 [DependencyInjection] Add `#[Target]` to tell how a dependency is used and hint named autowiring aliases
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Support extensions without configuration in ConfigBuilder warmup
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
`ConfigurationExtensionInterface::getConfiguration()` is nullable.
As a real use-case: A small internal bundle in my company just uses `array_merge` to manage a very limited set of configuration. We don't have these fancy Configuration classes.
Commits
-------
0a6f5e50b7 [Config] Support extensions without configuration
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Notifier] Add missing entries in scheme to package map
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | - <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | - <!-- required for new features -->
<!--
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/releases):
- Always add tests and ensure they pass.
- Never break backward compatibility (see https://symfony.com/bc).
- 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 5.x.
- Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
-->
Commits
-------
8cf605062b Add missing entries in scheme to package map
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Notifier] Notifier add test for adding transport factories to framework extension
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | <!-- required for new features -->
Follow up of https://github.com/symfony/symfony/pull/40843 and https://github.com/symfony/symfony/pull/40844
Needs to be rebased after both were merged.
See changes: ddf61c2dae
Commits
-------
3118c9088a Make sure we will not forget to add notifier transport factories to FrameworkExtension anymore
This PR was merged into the 5.3-dev branch.
Discussion
----------
[SecurityBundle] Deprecate public services to private
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
Follow up of https://github.com/symfony/symfony/pull/36691 on the SecurityBundle
Commits
-------
56be86aa7d [SecurityBundle] Deprecate public services to private