vendor/monsieurbiz/sylius-sales-reports-plugin/src/MonsieurBizSyliusSalesReportsPlugin.php line 20

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of Monsieur Biz' Sales Reports 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\SyliusSalesReportsPlugin;
  12. use Sylius\Bundle\CoreBundle\Application\SyliusPluginTrait;
  13. use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
  14. use Symfony\Component\HttpKernel\Bundle\Bundle;
  15. final class MonsieurBizSyliusSalesReportsPlugin extends Bundle
  16. {
  17.     use SyliusPluginTrait;
  18.     /**
  19.      * Returns the plugin's container extension.
  20.      *
  21.      * @throws \LogicException
  22.      *
  23.      * @return ExtensionInterface|null The container extension
  24.      */
  25.     public function getContainerExtension(): ?ExtensionInterface
  26.     {
  27.         if (null === $this->containerExtension) {
  28.             $extension $this->createContainerExtension();
  29.             if (null !== $extension) {
  30.                 if (!$extension instanceof ExtensionInterface) {
  31.                     throw new \LogicException(sprintf('Extension %s must implement %s.'\get_class($extension), ExtensionInterface::class));
  32.                 }
  33.                 $this->containerExtension $extension;
  34.             } else {
  35.                 $this->containerExtension false;
  36.             }
  37.         }
  38.         return $this->containerExtension instanceof ExtensionInterface
  39.             $this->containerExtension
  40.             null;
  41.     }
  42. }