vendor/wearemarketing/corebundle/WAMCoreBundle.php line 12

Open in your IDE?
  1. <?php
  2. namespace WAM\Bundle\CoreBundle;
  3. use Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass;
  4. use Symfony\Component\DependencyInjection\ContainerBuilder;
  5. use Symfony\Component\DependencyInjection\Definition;
  6. use Symfony\Component\HttpKernel\Bundle\Bundle;
  7. use WAM\Bundle\CoreBundle\DependencyInjection\Compiler\InjectTaggedServicesPass;
  8. use WAM\Bundle\CoreBundle\DependencyInjection\Compiler\WAMCoreCompilerPass;
  9. class WAMCoreBundle extends Bundle
  10. {
  11.     public function build(ContainerBuilder $container)
  12.     {
  13.         parent::build($container);
  14.         $container->addCompilerPass(new WAMCoreCompilerPass());
  15.         $container->addCompilerPass(
  16.             new InjectTaggedServicesPass(
  17.                 'wam.core.preview_handler.chain',
  18.                 'wam.preview_handler',
  19.                 'addHandler'
  20.             )
  21.         );
  22.         $this->buildOrmCompilerPass($container);
  23.     }
  24.     /**
  25.      * @param ContainerBuilder $container
  26.      */
  27.     protected function buildOrmCompilerPass(ContainerBuilder $container)
  28.     {
  29.         foreach ($this->extension->getEntitiesOverrides() as $configKey => $namespace) {
  30.             $container->addCompilerPass(
  31.                 new DoctrineOrmMappingsPass(
  32.                     $this->buildORMDriver(),
  33.                     [$namespace],
  34.                     ['wam.core.model_manager_name''orm'],
  35.                     "wam.core.use_default.{$configKey}"
  36.                 )
  37.             );
  38.         }
  39.     }
  40.     /**
  41.      * @return Definition
  42.      */
  43.     protected function buildORMDriver()
  44.     {
  45.         $arguments = [[realpath(__DIR__.'/Resources/config/doctrine-model')], '.orm.xml'];
  46.         $locator = new Definition('Doctrine\Common\Persistence\Mapping\Driver\DefaultFileLocator'$arguments);
  47.         return new Definition('Doctrine\ORM\Mapping\Driver\XmlDriver', [$locator]);
  48.     }
  49. }