diff --git a/src/Kernel.php b/src/Kernel.php index 5e7ccff0261..a5f95018387 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -14,12 +14,23 @@ use ProxyManager\Proxy\VirtualProxyInterface; use PSS\SymfonyMockerContainer\DependencyInjection\MockerContainer; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; +use Symfony\Component\Config\Loader\DelegatingLoader; use Symfony\Component\Config\Loader\LoaderInterface; +use Symfony\Component\Config\Loader\LoaderResolver; use Symfony\Component\Config\Resource\FileResource; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\DependencyInjection\Loader\ClosureLoader; +use Symfony\Component\DependencyInjection\Loader\DirectoryLoader; +use Symfony\Component\DependencyInjection\Loader\GlobFileLoader; +use Symfony\Component\DependencyInjection\Loader\IniFileLoader; +use Symfony\Component\DependencyInjection\Loader\PhpFileLoader; +use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; +use Symfony\Component\HttpKernel\Config\FileLocator; use Symfony\Component\HttpKernel\Kernel as BaseKernel; use Symfony\Component\Routing\RouteCollectionBuilder; +use Webmozart\Assert\Assert; /** @final */ class Kernel extends BaseKernel @@ -104,6 +115,25 @@ protected function getContainerBaseClass(): string return parent::getContainerBaseClass(); } + protected function getContainerLoader(ContainerInterface $container): LoaderInterface + { + /** @var ContainerBuilder $container */ + Assert::isInstanceOf($container, ContainerBuilder::class); + + $locator = new FileLocator($this, $this->getRootDir() . '/Resources'); + $resolver = new LoaderResolver(array( + new XmlFileLoader($container, $locator), + new YamlFileLoader($container, $locator), + new IniFileLoader($container, $locator), + new PhpFileLoader($container, $locator), + new GlobFileLoader($container, $locator), + new DirectoryLoader($container, $locator), + new ClosureLoader($container), + )); + + return new DelegatingLoader($resolver); + } + private function isTestEnvironment(): bool { return 0 === strpos($this->getEnvironment(), 'test');