vendor/ibexa/activity-log/src/bundle/IbexaActivityLogBundle.php line 21

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. declare(strict_types=1);
  7. namespace Ibexa\Bundle\ActivityLog;
  8. use Ibexa\ActivityLog\Permission\PolicyProvider;
  9. use Ibexa\Bundle\ActivityLog\DependencyInjection\CompilerPass\PersistenceSerializerCompilerPass;
  10. use Ibexa\Bundle\ActivityLog\DependencyInjection\Configuration\SiteAccessAware\ActivityLogParser;
  11. use Symfony\Component\Config\FileLocator;
  12. use Symfony\Component\Config\Loader\LoaderResolver;
  13. use Symfony\Component\DependencyInjection\ContainerBuilder;
  14. use Symfony\Component\DependencyInjection\Loader\GlobFileLoader;
  15. use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
  16. use Symfony\Component\HttpKernel\Bundle\Bundle;
  17. final class IbexaActivityLogBundle extends Bundle
  18. {
  19.     public function build(ContainerBuilder $container): void
  20.     {
  21.         $container->addCompilerPass(new PersistenceSerializerCompilerPass());
  22.         /** @var \Ibexa\Bundle\Core\DependencyInjection\IbexaCoreExtension $kernel */
  23.         $kernel $container->getExtension('ibexa');
  24.         $kernel->addConfigParser(new ActivityLogParser());
  25.         $kernel->addRepositoryConfigParser(new DependencyInjection\Configuration\RepositoryAware\ActivityLogParser());
  26.         $kernel->addDefaultSettings(__DIR__ '/Resources/config', ['default_settings.yaml']);
  27.         $kernel->addPolicyProvider(new PolicyProvider());
  28.         $loader $this->getLoader($container);
  29.         if ($container->hasExtension('ibexa_site_factory')) {
  30.             $loader->load('services/site-factory/**/*.yaml');
  31.         }
  32.         if ($container->hasExtension('ibexa_fieldtype_page')) {
  33.             $loader->load('services/page-builder/**/*.yaml');
  34.         }
  35.     }
  36.     private function getLoader(ContainerBuilder $container): GlobFileLoader
  37.     {
  38.         $locator = new FileLocator(__DIR__ '/Resources/config');
  39.         $loader = new GlobFileLoader(
  40.             $container,
  41.             $locator,
  42.         );
  43.         $resolver = new LoaderResolver([new YamlFileLoader($container$locator)]);
  44.         $loader->setResolver($resolver);
  45.         return $loader;
  46.     }
  47. }