N°5809 Update Symfony artifacts from 6.4.0 to 6.4.2

symfony/console
symfony/dotenv
symfony/framework-bundle
symfony/http-foundation
symfony/http-kernel
symfony/var-dumper
symfony/web-profiler-bundle
This commit is contained in:
Pierre Goiffon
2024-01-26 09:55:51 +01:00
parent ddce3058be
commit dfb5a4875a
110 changed files with 1115 additions and 929 deletions

View File

@@ -166,7 +166,7 @@ class Application extends BaseApplication
public function getLongVersion(): string
{
return parent::getLongVersion().sprintf(' (env: <comment>%s</>, debug: <comment>%s</>) <bg=#0057B7;fg=#FFDD00>#StandWith</><bg=#FFDD00;fg=#0057B7>Ukraine</> <href=https://sf.to/ukraine>https://sf.to/ukraine</>', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
return parent::getLongVersion().sprintf(' (env: <comment>%s</>, debug: <comment>%s</>)', $this->kernel->getEnvironment(), $this->kernel->isDebug() ? 'true' : 'false');
}
public function add(Command $command): ?Command

View File

@@ -111,7 +111,7 @@ abstract class AbstractController implements ServiceSubscriberInterface
/**
* Forwards the request to another controller.
*
* @param string $controller The controller name (a string like Bundle\BlogBundle\Controller\PostController::indexAction)
* @param string $controller The controller name (a string like "App\Controller\PostController::index" or "App\Controller\PostController" if it is invokable)
*/
protected function forward(string $controller, array $path = [], array $query = []): Response
{

View File

@@ -1938,7 +1938,7 @@ class FrameworkExtension extends Extension
$container->removeDefinition('serializer.mapping.cache_class_metadata_factory');
}
if (!class_exists(Translator::class)) {
if (!$this->readConfigEnabled('translator', $container, $config)) {
$container->removeDefinition('serializer.normalizer.translatable');
}
@@ -1990,21 +1990,23 @@ class FrameworkExtension extends Extension
$container->getDefinition('serializer.name_converter.metadata_aware')->setArgument(1, new Reference($config['name_converter']));
}
$defaultContext = $config['default_context'] ?? [];
if ($defaultContext) {
$container->setParameter('serializer.default_context', $defaultContext);
}
if (isset($config['circular_reference_handler']) && $config['circular_reference_handler']) {
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
$context = ($arguments[6] ?? []) + ['circular_reference_handler' => new Reference($config['circular_reference_handler'])];
$context = ($arguments[6] ?? $defaultContext) + ['circular_reference_handler' => new Reference($config['circular_reference_handler'])];
$container->getDefinition('serializer.normalizer.object')->setArgument(5, null);
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
}
if ($config['max_depth_handler'] ?? false) {
$defaultContext = $container->getDefinition('serializer.normalizer.object')->getArgument(6);
$defaultContext += ['max_depth_handler' => new Reference($config['max_depth_handler'])];
$container->getDefinition('serializer.normalizer.object')->replaceArgument(6, $defaultContext);
}
if (isset($config['default_context']) && $config['default_context']) {
$container->setParameter('serializer.default_context', $config['default_context']);
$arguments = $container->getDefinition('serializer.normalizer.object')->getArguments();
$context = ($arguments[6] ?? $defaultContext) + ['max_depth_handler' => new Reference($config['max_depth_handler'])];
$container->getDefinition('serializer.normalizer.object')->setArgument(6, $context);
}
}
@@ -2678,13 +2680,15 @@ class FrameworkExtension extends Extension
if ($webhookEnabled) {
$webhookRequestParsers = [
MailerBridge\Brevo\Webhook\BrevoRequestParser::class => 'mailer.webhook.request_parser.brevo',
MailerBridge\Mailgun\Webhook\MailgunRequestParser::class => 'mailer.webhook.request_parser.mailgun',
MailerBridge\Mailjet\Webhook\MailjetRequestParser::class => 'mailer.webhook.request_parser.mailjet',
MailerBridge\Postmark\Webhook\PostmarkRequestParser::class => 'mailer.webhook.request_parser.postmark',
MailerBridge\Sendgrid\Webhook\SendgridRequestParser::class => 'mailer.webhook.request_parser.sendgrid',
];
foreach ($webhookRequestParsers as $class => $service) {
$package = substr($service, \strlen('mailer.transport_factory.'));
$package = substr($service, \strlen('mailer.webhook.request_parser.'));
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-mailer', 'gmail' === $package ? 'google' : $package), $class, ['symfony/framework-bundle', 'symfony/mailer'])) {
$container->removeDefinition($service);
@@ -2868,7 +2872,9 @@ class FrameworkExtension extends Extension
if (ContainerBuilder::willBeAvailable('symfony/mercure-notifier', NotifierBridge\Mercure\MercureTransportFactory::class, $parentPackages) && ContainerBuilder::willBeAvailable('symfony/mercure-bundle', MercureBundle::class, $parentPackages) && \in_array(MercureBundle::class, $container->getParameter('kernel.bundles'), true)) {
$container->getDefinition($classToServices[NotifierBridge\Mercure\MercureTransportFactory::class])
->replaceArgument('$registry', new Reference(HubRegistry::class));
->replaceArgument('$registry', new Reference(HubRegistry::class))
->replaceArgument('$client', new Reference('http_client', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
->replaceArgument('$dispatcher', new Reference('event_dispatcher', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
} elseif (ContainerBuilder::willBeAvailable('symfony/mercure-notifier', NotifierBridge\Mercure\MercureTransportFactory::class, $parentPackages)) {
$container->removeDefinition($classToServices[NotifierBridge\Mercure\MercureTransportFactory::class]);
}
@@ -2876,13 +2882,17 @@ class FrameworkExtension extends Extension
if (ContainerBuilder::willBeAvailable('symfony/fake-chat-notifier', NotifierBridge\FakeChat\FakeChatTransportFactory::class, ['symfony/framework-bundle', 'symfony/notifier', 'symfony/mailer'])) {
$container->getDefinition($classToServices[NotifierBridge\FakeChat\FakeChatTransportFactory::class])
->replaceArgument('$mailer', new Reference('mailer'))
->replaceArgument('$logger', new Reference('logger'));
->replaceArgument('$logger', new Reference('logger'))
->replaceArgument('$client', new Reference('http_client', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
->replaceArgument('$dispatcher', new Reference('event_dispatcher', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
}
if (ContainerBuilder::willBeAvailable('symfony/fake-sms-notifier', NotifierBridge\FakeSms\FakeSmsTransportFactory::class, ['symfony/framework-bundle', 'symfony/notifier', 'symfony/mailer'])) {
$container->getDefinition($classToServices[NotifierBridge\FakeSms\FakeSmsTransportFactory::class])
->replaceArgument('$mailer', new Reference('mailer'))
->replaceArgument('$logger', new Reference('logger'));
->replaceArgument('$logger', new Reference('logger'))
->replaceArgument('$client', new Reference('http_client', ContainerBuilder::NULL_ON_INVALID_REFERENCE))
->replaceArgument('$dispatcher', new Reference('event_dispatcher', ContainerBuilder::NULL_ON_INVALID_REFERENCE));
}
if (isset($config['admin_recipients'])) {
@@ -2896,6 +2906,19 @@ class FrameworkExtension extends Extension
if ($webhookEnabled) {
$loader->load('notifier_webhook.php');
$webhookRequestParsers = [
NotifierBridge\Twilio\Webhook\TwilioRequestParser::class => 'notifier.webhook.request_parser.twilio',
NotifierBridge\Vonage\Webhook\VonageRequestParser::class => 'notifier.webhook.request_parser.vonage',
];
foreach ($webhookRequestParsers as $class => $service) {
$package = substr($service, \strlen('notifier.webhook.request_parser.'));
if (!ContainerBuilder::willBeAvailable(sprintf('symfony/%s-notifier', $package), $class, ['symfony/framework-bundle', 'symfony/notifier'])) {
$container->removeDefinition($service);
}
}
}
}

View File

@@ -42,7 +42,8 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
private readonly Profiler $profiler,
private readonly RequestStack $requestStack,
private readonly Stopwatch $stopwatch,
private readonly UrlGeneratorInterface $urlGenerator,
private readonly bool $cliMode,
private readonly ?UrlGeneratorInterface $urlGenerator = null,
) {
$this->profiles = new \SplObjectStorage();
$this->parents = new \SplObjectStorage();
@@ -59,6 +60,10 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
public function initialize(ConsoleCommandEvent $event): void
{
if (!$this->cliMode) {
return;
}
$input = $event->getInput();
if (!$input->hasOption('profile') || !$input->getOption('profile')) {
$this->profiler->disable();
@@ -78,12 +83,16 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
public function catch(ConsoleErrorEvent $event): void
{
if (!$this->cliMode) {
return;
}
$this->error = $event->getError();
}
public function profile(ConsoleTerminateEvent $event): void
{
if (!$this->profiler->isEnabled()) {
if (!$this->cliMode || !$this->profiler->isEnabled()) {
return;
}
@@ -131,12 +140,14 @@ final class ConsoleProfilerListener implements EventSubscriberInterface
$p = $this->profiles[$r];
$this->profiler->saveProfile($p);
$token = $p->getToken();
$output?->writeln(sprintf(
'See profile <href=%s>%s</>',
$this->urlGenerator->generate('_profiler', ['token' => $token], UrlGeneratorInterface::ABSOLUTE_URL),
$token
));
if ($this->urlGenerator && $output) {
$token = $p->getToken();
$output->writeln(sprintf(
'See profile <href=%s>%s</>',
$this->urlGenerator->generate('_profiler', ['token' => $token], UrlGeneratorInterface::ABSOLUTE_URL),
$token
));
}
}
$this->profiles = new \SplObjectStorage();

View File

@@ -11,8 +11,12 @@
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Component\Mailer\Bridge\Brevo\RemoteEvent\BrevoPayloadConverter;
use Symfony\Component\Mailer\Bridge\Brevo\Webhook\BrevoRequestParser;
use Symfony\Component\Mailer\Bridge\Mailgun\RemoteEvent\MailgunPayloadConverter;
use Symfony\Component\Mailer\Bridge\Mailgun\Webhook\MailgunRequestParser;
use Symfony\Component\Mailer\Bridge\Mailjet\RemoteEvent\MailjetPayloadConverter;
use Symfony\Component\Mailer\Bridge\Mailjet\Webhook\MailjetRequestParser;
use Symfony\Component\Mailer\Bridge\Postmark\RemoteEvent\PostmarkPayloadConverter;
use Symfony\Component\Mailer\Bridge\Postmark\Webhook\PostmarkRequestParser;
use Symfony\Component\Mailer\Bridge\Sendgrid\RemoteEvent\SendgridPayloadConverter;
@@ -20,11 +24,21 @@ use Symfony\Component\Mailer\Bridge\Sendgrid\Webhook\SendgridRequestParser;
return static function (ContainerConfigurator $container) {
$container->services()
->set('mailer.payload_converter.brevo', BrevoPayloadConverter::class)
->set('mailer.webhook.request_parser.brevo', BrevoRequestParser::class)
->args([service('mailer.payload_converter.brevo')])
->alias(BrevoRequestParser::class, 'mailer.webhook.request_parser.brevo')
->set('mailer.payload_converter.mailgun', MailgunPayloadConverter::class)
->set('mailer.webhook.request_parser.mailgun', MailgunRequestParser::class)
->args([service('mailer.payload_converter.mailgun')])
->alias(MailgunRequestParser::class, 'mailer.webhook.request_parser.mailgun')
->set('mailer.payload_converter.mailjet', MailjetPayloadConverter::class)
->set('mailer.webhook.request_parser.mailjet', MailjetRequestParser::class)
->args([service('mailer.payload_converter.mailjet')])
->alias(MailjetRequestParser::class, 'mailer.webhook.request_parser.mailjet')
->set('mailer.payload_converter.postmark', PostmarkPayloadConverter::class)
->set('mailer.webhook.request_parser.postmark', PostmarkRequestParser::class)
->args([service('mailer.payload_converter.postmark')])

View File

@@ -12,10 +12,14 @@
namespace Symfony\Component\DependencyInjection\Loader\Configurator;
use Symfony\Component\Notifier\Bridge\Twilio\Webhook\TwilioRequestParser;
use Symfony\Component\Notifier\Bridge\Vonage\Webhook\VonageRequestParser;
return static function (ContainerConfigurator $container) {
$container->services()
->set('notifier.webhook.request_parser.twilio', TwilioRequestParser::class)
->alias(TwilioRequestParser::class, 'notifier.webhook.request_parser.twilio')
->set('notifier.webhook.request_parser.vonage', VonageRequestParser::class)
->alias(VonageRequestParser::class, 'notifier.webhook.request_parser.vonage')
;
};

View File

@@ -43,7 +43,8 @@ return static function (ContainerConfigurator $container) {
service('profiler'),
service('.virtual_request_stack'),
service('debug.stopwatch'),
service('router'),
param('kernel.runtime_mode.cli'),
service('router')->nullOnInvalid(),
])
->tag('kernel.event_subscriber')

View File

@@ -979,6 +979,7 @@
<xsd:element name="service" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="secret" type="xsd:string" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:complexType>
<xsd:complexType name="remote-event">

View File

@@ -19,7 +19,7 @@ if (false) {
/**
* @deprecated since Symfony 6.4, to be removed in 7.0, use {@link AttributeRouteControllerLoader} instead
*/
class AnnotatedRouteControllerLoader
class AnnotatedRouteControllerLoader extends AttributeRouteControllerLoader
{
}
}

View File

@@ -82,7 +82,7 @@
"symfony/asset": "<5.4",
"symfony/asset-mapper": "<6.4",
"symfony/clock": "<6.3",
"symfony/console": "<5.4",
"symfony/console": "<5.4|>=7.0",
"symfony/dotenv": "<5.4",
"symfony/dom-crawler": "<6.4",
"symfony/http-client": "<6.3",