vendor/ibexa/core/src/bundle/Core/IbexaCoreBundle.php line 95

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. namespace Ibexa\Bundle\Core;
  7. use Ibexa\Bundle\Core\DependencyInjection\Compiler\BinaryContentDownloadPass;
  8. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainConfigResolverPass;
  9. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ChainRoutingPass;
  10. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ConsoleCacheWarmupPass;
  11. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ConsoleCommandPass;
  12. use Ibexa\Bundle\Core\DependencyInjection\Compiler\EntityManagerFactoryServiceLocatorPass;
  13. use Ibexa\Bundle\Core\DependencyInjection\Compiler\FieldTypeParameterProviderRegistryPass;
  14. use Ibexa\Bundle\Core\DependencyInjection\Compiler\FragmentPass;
  15. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ImaginePass;
  16. use Ibexa\Bundle\Core\DependencyInjection\Compiler\InjectEntityManagerMappingsPass;
  17. use Ibexa\Bundle\Core\DependencyInjection\Compiler\LazyDoctrineRepositoriesPass;
  18. use Ibexa\Bundle\Core\DependencyInjection\Compiler\NotificationRendererPass;
  19. use Ibexa\Bundle\Core\DependencyInjection\Compiler\PlaceholderProviderPass;
  20. use Ibexa\Bundle\Core\DependencyInjection\Compiler\QueryTypePass;
  21. use Ibexa\Bundle\Core\DependencyInjection\Compiler\RegisterSearchEngineIndexerPass;
  22. use Ibexa\Bundle\Core\DependencyInjection\Compiler\RegisterSearchEnginePass;
  23. use Ibexa\Bundle\Core\DependencyInjection\Compiler\RegisterStorageEnginePass;
  24. use Ibexa\Bundle\Core\DependencyInjection\Compiler\RouterPass;
  25. use Ibexa\Bundle\Core\DependencyInjection\Compiler\SecurityPass;
  26. use Ibexa\Bundle\Core\DependencyInjection\Compiler\SessionConfigurationPass;
  27. use Ibexa\Bundle\Core\DependencyInjection\Compiler\SiteAccessMatcherRegistryPass;
  28. use Ibexa\Bundle\Core\DependencyInjection\Compiler\SlugConverterConfigurationPass;
  29. use Ibexa\Bundle\Core\DependencyInjection\Compiler\StorageConnectionPass;
  30. use Ibexa\Bundle\Core\DependencyInjection\Compiler\TranslationCollectorPass;
  31. use Ibexa\Bundle\Core\DependencyInjection\Compiler\URLHandlerPass;
  32. use Ibexa\Bundle\Core\DependencyInjection\Compiler\ViewProvidersPass;
  33. use Ibexa\Bundle\Core\DependencyInjection\Configuration\ComplexSettings\ComplexSettingParser;
  34. use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser as ConfigParser;
  35. use Ibexa\Bundle\Core\DependencyInjection\Configuration\Parser\Repository as RepositoryConfigParser;
  36. use Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension;
  37. use Ibexa\Bundle\Core\DependencyInjection\Security\HttpBasicFactory;
  38. use Ibexa\Contracts\Core\MVC\View\VariableProvider;
  39. use Ibexa\Core\Base\Container\Compiler\FieldTypeRegistryPass;
  40. use Ibexa\Core\Base\Container\Compiler\GenericFieldTypeConverterPass;
  41. use Ibexa\Core\Base\Container\Compiler\Persistence\FieldTypeRegistryPass as PersistenceFieldTypeRegistryPass;
  42. use Ibexa\Core\Base\Container\Compiler\Search\AggregateFieldValueMapperPass;
  43. use Ibexa\Core\Base\Container\Compiler\Search\FieldRegistryPass;
  44. use Ibexa\Core\Base\Container\Compiler\Storage\ExternalStorageRegistryPass;
  45. use Ibexa\Core\Base\Container\Compiler\Storage\Legacy\FieldValueConverterRegistryPass;
  46. use Ibexa\Core\Base\Container\Compiler\Storage\Legacy\RoleLimitationConverterPass;
  47. use Symfony\Component\DependencyInjection\Compiler\PassConfig;
  48. use Symfony\Component\DependencyInjection\ContainerBuilder;
  49. use Symfony\Component\HttpKernel\Bundle\Bundle;
  50. class IbexaCoreBundle extends Bundle
  51. {
  52.     public function build(ContainerBuilder $container)
  53.     {
  54.         parent::build($container);
  55.         $container->addCompilerPass(new GenericFieldTypeConverterPass(), PassConfig::TYPE_OPTIMIZE);
  56.         $container->addCompilerPass(new FieldTypeRegistryPass(), PassConfig::TYPE_OPTIMIZE);
  57.         $container->addCompilerPass(new PersistenceFieldTypeRegistryPass(), PassConfig::TYPE_OPTIMIZE);
  58.         $container->addCompilerPass(new FieldTypeParameterProviderRegistryPass());
  59.         $container->addCompilerPass(new ChainRoutingPass());
  60.         $container->addCompilerPass(new ChainConfigResolverPass());
  61.         $container->addCompilerPass(new RegisterStorageEnginePass());
  62.         $container->addCompilerPass(new RegisterSearchEnginePass());
  63.         $container->addCompilerPass(new RegisterSearchEngineIndexerPass());
  64.         $container->addCompilerPass(new AggregateFieldValueMapperPass());
  65.         $container->addCompilerPass(new FieldRegistryPass());
  66.         $container->addCompilerPass(new RouterPass());
  67.         $container->addCompilerPass(new SecurityPass());
  68.         $container->addCompilerPass(new FragmentPass());
  69.         $container->addCompilerPass(new StorageConnectionPass());
  70.         $container->addCompilerPass(new ImaginePass());
  71.         $container->addCompilerPass(new URLHandlerPass());
  72.         $container->addCompilerPass(new BinaryContentDownloadPass());
  73.         $container->addCompilerPass(new ViewProvidersPass());
  74.         $container->addCompilerPass(new PlaceholderProviderPass());
  75.         $container->addCompilerPass(new NotificationRendererPass());
  76.         $container->addCompilerPass(new ConsoleCacheWarmupPass());
  77.         $container->addCompilerPass(new SiteAccessMatcherRegistryPass());
  78.         $container->addCompilerPass(new ConsoleCommandPass());
  79.         $container->addCompilerPass(new LazyDoctrineRepositoriesPass(), PassConfig::TYPE_BEFORE_REMOVING);
  80.         $container->addCompilerPass(new EntityManagerFactoryServiceLocatorPass());
  81.         $container->addCompilerPass(new InjectEntityManagerMappingsPass());
  82.         $container->addCompilerPass(new SessionConfigurationPass());
  83.         // Storage passes
  84.         $container->addCompilerPass(new ExternalStorageRegistryPass());
  85.         // Legacy Storage passes
  86.         $container->addCompilerPass(new FieldValueConverterRegistryPass());
  87.         $container->addCompilerPass(new RoleLimitationConverterPass());
  88.         $container->addCompilerPass(new QueryTypePass());
  89.         $securityExtension $container->getExtension('security');
  90.         $securityExtension->addSecurityListenerFactory(new HttpBasicFactory());
  91.         $container->addCompilerPass(new TranslationCollectorPass());
  92.         $container->addCompilerPass(new SlugConverterConfigurationPass());
  93.         $container->registerForAutoconfiguration(VariableProvider::class)->addTag('ezplatform.view.variable_provider');
  94.     }
  95.     public function getContainerExtension()
  96.     {
  97.         if (!isset($this->extension)) {
  98.             $this->extension = new IbexaCoreExtension(
  99.                 [
  100.                     // LocationView config parser needs to be specified AFTER ContentView config
  101.                     // parser since it is used to convert location view override rules to content
  102.                     // view override rules. If it were specified before, ContentView provider would
  103.                     // just undo the conversion LocationView did.
  104.                     new ConfigParser\ContentView(),
  105.                     new ConfigParser\LocationView(),
  106.                     new ConfigParser\Common(),
  107.                     new ConfigParser\Content(),
  108.                     new ConfigParser\FieldType\ImageAsset(),
  109.                     new ConfigParser\FieldTemplates(),
  110.                     new ConfigParser\FieldEditTemplates(),
  111.                     new ConfigParser\FieldDefinitionSettingsTemplates(),
  112.                     new ConfigParser\FieldDefinitionEditTemplates(),
  113.                     new ConfigParser\Image(),
  114.                     new ConfigParser\Languages(),
  115.                     new ConfigParser\IO(new ComplexSettingParser()),
  116.                     new ConfigParser\UrlChecker(),
  117.                     new ConfigParser\TwigVariablesParser(),
  118.                     new ConfigParser\UserContentTypeIdentifier(),
  119.                 ],
  120.                 [
  121.                     new RepositoryConfigParser\Storage(),
  122.                     new RepositoryConfigParser\Search(),
  123.                     new RepositoryConfigParser\FieldGroups(),
  124.                     new RepositoryConfigParser\Options(),
  125.                 ]
  126.             );
  127.         }
  128.         return $this->extension;
  129.     }
  130. }
  131. class_alias(IbexaCoreBundle::class, 'eZ\Bundle\EzPublishCoreBundle\EzPublishCoreBundle');