vendor/monsieurbiz/sylius-settings-plugin/src/MonsieurBizSyliusSettingsPlugin.php line 23

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of Monsieur Biz' Settings plugin for Sylius.
  4.  *
  5.  * (c) Monsieur Biz <sylius@monsieurbiz.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE.txt
  8.  * file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace MonsieurBiz\SyliusSettingsPlugin;
  12. use LogicException;
  13. use MonsieurBiz\SyliusSettingsPlugin\DependencyInjection\InstantiateSettingsPass;
  14. use Sylius\Bundle\CoreBundle\Application\SyliusPluginTrait;
  15. use Symfony\Component\DependencyInjection\ContainerBuilder;
  16. use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
  17. use Symfony\Component\HttpKernel\Bundle\Bundle;
  18. final class MonsieurBizSyliusSettingsPlugin extends Bundle
  19. {
  20.     use SyliusPluginTrait;
  21.     /**
  22.      * Returns the plugin's container extension.
  23.      *
  24.      * @throws LogicException
  25.      *
  26.      * @return ExtensionInterface|null The container extension
  27.      */
  28.     public function getContainerExtension(): ?ExtensionInterface
  29.     {
  30.         if (null === $this->containerExtension) {
  31.             $this->containerExtension false;
  32.             $extension $this->createContainerExtension();
  33.             if (null !== $extension) {
  34.                 $this->containerExtension $extension;
  35.             }
  36.         }
  37.         return $this->containerExtension instanceof ExtensionInterface
  38.             $this->containerExtension
  39.             null;
  40.     }
  41.     public function build(ContainerBuilder $container): void
  42.     {
  43.         parent::build($container);
  44.         $container->addCompilerPass(new InstantiateSettingsPass());
  45.     }
  46. }