Register definition encoders.

This commit is contained in:
David Molineus
2017-10-06 15:35:02 +02:00
parent 1b035901c1
commit a43b740ba0
2 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
<?php
/**
* Leaflet maps for Contao CMS.
*
* @package contao-leaflet-maps
* @author David Molineus <david.molineus@netzmacht.de>
* @copyright 2016-2017 netzmacht David Molineus. All rights reserved.
* @license LGPL-3.0 https://github.com/netzmacht/contao-leaflet-maps/blob/master/LICENSE
* @filesource
*/
declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet\DependencyInjection\Pass;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
/**
* Register all definition encoders.
*
* @package Netzmacht\Contao\Leaflet\DependencyInjection\Pass
*/
class RegisterEncodersPass implements CompilerPassInterface
{
/**
* {@inheritDoc}
*/
public function process(ContainerBuilder $container)
{
if (!$container->hasDefinition('netzmacht.contao_leaflet_maps.definition.builder.event_dispatcher')) {
return;
}
$definition = $container->getDefinition('netzmacht.contao_leaflet_maps.definition.builder.event_dispatcher');
$serviceIds = $container->findTaggedServiceIds('netzmacht.contao_leaflet_maps.encoder');
foreach ($serviceIds as $serviceId => $tags) {
$definition->addMethodCall('addSubscriber', [new Reference($serviceId)]);
}
}
}

View File

@@ -15,6 +15,7 @@ declare(strict_types=1);
namespace Netzmacht\Contao\Leaflet;
use Netzmacht\Contao\Leaflet\DependencyInjection\Pass\RegisterDefinitionMapperPass;
use Netzmacht\Contao\Leaflet\DependencyInjection\Pass\RegisterEncodersPass;
use Netzmacht\Contao\Toolkit\DependencyInjection\CompilerPass\AddTaggedServicesAsArgumentCompilerPass;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
@@ -32,6 +33,7 @@ class NetzmachtContaoLeafletBundle extends Bundle
public function build(ContainerBuilder $container)
{
$container->addCompilerPass(new RegisterDefinitionMapperPass());
$container->addCompilerPass(new RegisterEncodersPass());
$container->addCompilerPass(
new AddTaggedServicesAsArgumentCompilerPass(