Spaces:
No application file
No application file
| namespace Mautic\SmsBundle\DependencyInjection\Compiler; | |
| use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; | |
| use Symfony\Component\DependencyInjection\ContainerBuilder; | |
| use Symfony\Component\DependencyInjection\Reference; | |
| class SmsTransportPass implements CompilerPassInterface | |
| { | |
| private ?ContainerBuilder $container = null; | |
| public function process(ContainerBuilder $container): void | |
| { | |
| $this->container = $container; | |
| $this->registerTransports(); | |
| $this->registerCallbacks(); | |
| } | |
| private function registerTransports(): void | |
| { | |
| if (!$this->container->has('mautic.sms.transport_chain')) { | |
| return; | |
| } | |
| $definition = $this->container->getDefinition('mautic.sms.transport_chain'); | |
| $taggedServices = $this->container->findTaggedServiceIds('mautic.sms_transport'); | |
| foreach ($taggedServices as $id => $tags) { | |
| $definition->addMethodCall('addTransport', [ | |
| $id, | |
| new Reference($id), | |
| !empty($tags[0]['alias']) ? $tags[0]['alias'] : $id, | |
| !empty($tags[0]['integrationAlias']) ? $tags[0]['integrationAlias'] : $id, | |
| ]); | |
| } | |
| } | |
| private function registerCallbacks(): void | |
| { | |
| if (!$this->container->has('mautic.sms.callback_handler_container')) { | |
| return; | |
| } | |
| $definition = $this->container->getDefinition('mautic.sms.callback_handler_container'); | |
| $taggedServices = $this->container->findTaggedServiceIds('mautic.sms_callback_handler'); | |
| foreach ($taggedServices as $id => $tags) { | |
| $definition->addMethodCall('registerHandler', [ | |
| new Reference($id), | |
| ]); | |
| } | |
| } | |
| } | |