diff --git a/src/DependencyInjection/MessengerExtension.php b/src/DependencyInjection/MessengerExtension.php index f6e5941..6b8f888 100644 --- a/src/DependencyInjection/MessengerExtension.php +++ b/src/DependencyInjection/MessengerExtension.php @@ -95,7 +95,11 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder $container->setAlias('message_bus', $busId)->setPublic(true); $container->setAlias(MessageBusInterface::class, $busId); } else { - $container->registerAliasForArgument($busId, MessageBusInterface::class); + if (method_exists($container, 'registerAliasForArgument')) { + $container->registerAliasForArgument($busId, MessageBusInterface::class); + } else { + $this->registerAliasForArgument($container, $busId, MessageBusInterface::class); + } } } @@ -142,4 +146,15 @@ public function getAlias(): string { return 'lendable_polyfill_messenger'; } + + private function registerAliasForArgument(ContainerBuilder $container, string $id, string $type, string $name = null) + { + $name = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $name ?? $id)))); + + if (!preg_match('/^[a-zA-Z_\x7f-\xff]/', $name)) { + throw new InvalidArgumentException(sprintf('Invalid argument name "%s" for service "%s": the first character must be a letter.', $name, $id)); + } + + return $container->setAlias($type . ' $' . $name, $id); + } }