<?php
/*
* This file is part of Monsieur Biz' Sales Reports plugin for Sylius.
*
* (c) Monsieur Biz <sylius@monsieurbiz.com>
*
* For the full copyright and license information, please view the LICENSE.txt
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace MonsieurBiz\SyliusSalesReportsPlugin;
use Sylius\Bundle\CoreBundle\Application\SyliusPluginTrait;
use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
use Symfony\Component\HttpKernel\Bundle\Bundle;
final class MonsieurBizSyliusSalesReportsPlugin extends Bundle
{
use SyliusPluginTrait;
/**
* Returns the plugin's container extension.
*
* @throws \LogicException
*
* @return ExtensionInterface|null The container extension
*/
public function getContainerExtension(): ?ExtensionInterface
{
if (null === $this->containerExtension) {
$extension = $this->createContainerExtension();
if (null !== $extension) {
if (!$extension instanceof ExtensionInterface) {
throw new \LogicException(sprintf('Extension %s must implement %s.', \get_class($extension), ExtensionInterface::class));
}
$this->containerExtension = $extension;
} else {
$this->containerExtension = false;
}
}
return $this->containerExtension instanceof ExtensionInterface
? $this->containerExtension
: null;
}
}