<?php
namespace DW\GingerBundle;
use DW\GingerBundle\DependencyInjection\Compiler\AddPersonMatcherPass;
use DW\GingerBundle\DependencyInjection\Compiler\AddSearchFilterPass;
use DW\GingerBundle\DependencyInjection\Compiler\AddSearchQueryConverterPass;
use DW\GingerBundle\DependencyInjection\Compiler\AddTwigGlobalsPass;
use DW\GingerBundle\GraphQL\GraphQLTypeCompilerPass;
use DW\GingerBundle\Search\QueryBuilderConverterInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class DWGingerBundle extends Bundle
{
/**
* {@inheritdoc}
*/
public function build(ContainerBuilder $container)
{
parent::build($container);
$this->autoConfigureTags($container);
$container
->addCompilerPass(new AddSearchQueryConverterPass())
->addCompilerPass(new AddSearchFilterPass())
->addCompilerPass(new AddTwigGlobalsPass())
->addCompilerPass(new GraphQLTypeCompilerPass())
->addCompilerPass(new AddPersonMatcherPass())
;
}
/**
* Automatically apply bundle tags.
*
* @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
*/
private function autoConfigureTags(ContainerBuilder $container)
{
// SearchQueryConverters.
if (!$container->has('dw_ginger.search.doctrine_engine')) {
$container->registerForAutoconfiguration(QueryBuilderConverterInterface::class)
->addTag('dw_ginger.search.doctrine.query_converter')
;
}
}
}