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. }