vendor/contao/manager-plugin/src/Config/ContainerBuilder.php line 57

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * This file is part of Contao.
  5.  *
  6.  * (c) Leo Feyer
  7.  *
  8.  * @license LGPL-3.0-or-later
  9.  */
  10. namespace Contao\ManagerPlugin\Config;
  11. use Contao\ManagerPlugin\PluginLoader;
  12. use Symfony\Component\DependencyInjection\ContainerBuilder as SymfonyContainerBuilder;
  13. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  14. class ContainerBuilder extends SymfonyContainerBuilder
  15. {
  16.     /**
  17.      * @var PluginLoader
  18.      */
  19.     private $pluginLoader;
  20.     /**
  21.      * @var array
  22.      */
  23.     private $managerConfig;
  24.     public function __construct(PluginLoader $pluginLoader, array $managerConfigParameterBagInterface $parameterBag null)
  25.     {
  26.         parent::__construct($parameterBag);
  27.         $this->pluginLoader $pluginLoader;
  28.         $this->managerConfig $managerConfig;
  29.     }
  30.     /**
  31.      * @return array<string,mixed>
  32.      */
  33.     public function getManagerConfig(): array
  34.     {
  35.         return $this->managerConfig;
  36.     }
  37.     /**
  38.      * {@inheritdoc}
  39.      */
  40.     public function getExtensionConfig($name): array
  41.     {
  42.         $configs parent::getExtensionConfig($name);
  43.         $plugins $this->pluginLoader->getInstancesOf(PluginLoader::EXTENSION_PLUGINS);
  44.         /** @var array<ExtensionPluginInterface> $plugins */
  45.         foreach ($plugins as $plugin) {
  46.             $configs $plugin->getExtensionConfig($name$configs$this);
  47.         }
  48.         return $configs;
  49.     }
  50. }