vendor/sulu/sulu/src/Sulu/Bundle/PreviewBundle/Infrastructure/Symfony/DependencyInjection/SuluPreviewExtension.php line 49

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of Sulu.
  4.  *
  5.  * (c) Sulu GmbH
  6.  *
  7.  * This source file is subject to the MIT license that is bundled
  8.  * with this source code in the file LICENSE.
  9.  */
  10. namespace Sulu\Bundle\PreviewBundle\Infrastructure\Symfony\DependencyInjection;
  11. use Sulu\Bundle\PersistenceBundle\DependencyInjection\PersistenceExtensionTrait;
  12. use Sulu\Bundle\PreviewBundle\Domain\Model\PreviewLinkInterface;
  13. use Sulu\Bundle\PreviewBundle\Domain\Repository\PreviewLinkRepositoryInterface;
  14. use Symfony\Component\Config\FileLocator;
  15. use Symfony\Component\DependencyInjection\ContainerBuilder;
  16. use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
  17. use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
  18. use Symfony\Component\HttpKernel\DependencyInjection\Extension;
  19. /**
  20.  * Extends the container and initializes the preview budle.
  21.  */
  22. class SuluPreviewExtension extends Extension implements PrependExtensionInterface
  23. {
  24.     use PersistenceExtensionTrait;
  25.     public function load(array $configsContainerBuilder $container): void
  26.     {
  27.         $configuration = new Configuration();
  28.         $config $this->processConfiguration($configuration$configs);
  29.         $container->setParameter('sulu_preview.mode'$config['mode']);
  30.         $container->setParameter('sulu_preview.delay'$config['delay']);
  31.         $loader = new XmlFileLoader($container, new FileLocator(__DIR__ '/../../../Resources/config'));
  32.         $loader->load('services.xml');
  33.         $this->configurePersistence($config['objects'], $container);
  34.         $container->addAliases(
  35.             [
  36.                 PreviewLinkRepositoryInterface::class => 'sulu_preview.preview_link_repository',
  37.             ]
  38.         );
  39.     }
  40.     public function prepend(ContainerBuilder $container): void
  41.     {
  42.         $configs $container->getExtensionConfig($this->getAlias());
  43.         $config $this->processConfiguration(new Configuration(), $configs);
  44.         $container->prependExtensionConfig('framework',
  45.             [
  46.                 'cache' => [
  47.                     'pools' => [
  48.                         'sulu_preview.preview.cache' => [
  49.                             'adapter' => $config['cache_adapter'],
  50.                         ],
  51.                     ],
  52.                 ],
  53.             ]
  54.         );
  55.         if ($container->hasExtension('doctrine')) {
  56.             $container->prependExtensionConfig(
  57.                 'doctrine',
  58.                 [
  59.                     'orm' => [
  60.                         'mappings' => [
  61.                             'SuluPreviewBundle' => [
  62.                                 'type' => 'xml',
  63.                                 'dir' => __DIR__ '/../../../Resources/config/doctrine',
  64.                                 'prefix' => 'Sulu\Bundle\PreviewBundle\Domain\Model',
  65.                                 'alias' => 'SuluPreviewBundle',
  66.                             ],
  67.                         ],
  68.                     ],
  69.                 ]
  70.             );
  71.         }
  72.         if ($container->hasExtension('sulu_admin')) {
  73.             $container->prependExtensionConfig(
  74.                 'sulu_admin',
  75.                 [
  76.                     'resources' => [
  77.                         PreviewLinkInterface::RESOURCE_KEY => [
  78.                             'routes' => [
  79.                                 'detail' => 'sulu_preview.get_preview-link',
  80.                             ],
  81.                         ],
  82.                     ],
  83.                 ]
  84.             );
  85.         }
  86.     }
  87. }