vendor/sensio/framework-extra-bundle/src/DependencyInjection/SensioFrameworkExtraExtension.php line 30
<?php/** This file is part of the Symfony package.** (c) Fabien Potencier <fabien@symfony.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Sensio\Bundle\FrameworkExtraBundle\DependencyInjection;use Sensio\Bundle\FrameworkExtraBundle\Request\ParamConverter\ParamConverterInterface;use Symfony\Component\Config\FileLocator;use Symfony\Component\Config\Resource\ClassExistenceResource;use Symfony\Component\DependencyInjection\Alias;use Symfony\Component\DependencyInjection\ContainerBuilder;use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;use Symfony\Component\ExpressionLanguage\ExpressionLanguage;use Symfony\Component\HttpKernel\DependencyInjection\Extension;use Symfony\Component\HttpKernel\Kernel;use Symfony\Component\Security\Core\Authorization\ExpressionLanguage as SecurityExpressionLanguage;/*** @author Fabien Potencier <fabien@symfony.com>*/class SensioFrameworkExtraExtension extends Extension{public function load(array $configs, ContainerBuilder $container){$configuration = $this->getConfiguration($configs, $container);$config = $this->processConfiguration($configuration, $configs);$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));$annotationsToLoad = [];$definitionsToRemove = [];if ($config['router']['annotations']) {@trigger_error(sprintf('Enabling the "sensio_framework_extra.router.annotations" configuration is deprecated since version 5.2. Set it to false and use the "%s" annotation from Symfony itself.', \Symfony\Component\Routing\Annotation\Route::class), \E_USER_DEPRECATED);if (Kernel::MAJOR_VERSION < 5) {$annotationsToLoad[] = 'routing-4.4.xml';} else {$annotationsToLoad[] = 'routing.xml';}}if ($config['request']['converters']) {$annotationsToLoad[] = 'converters.xml';$container->registerForAutoconfiguration(ParamConverterInterface::class)->addTag('request.param_converter');$container->setParameter('sensio_framework_extra.disabled_converters', \is_string($config['request']['disable']) ? implode(',', $config['request']['disable']) : $config['request']['disable']);$container->addResource(new ClassExistenceResource(ExpressionLanguage::class));if (class_exists(ExpressionLanguage::class)) {$container->setAlias('sensio_framework_extra.converter.doctrine.orm.expression_language', new Alias('sensio_framework_extra.converter.doctrine.orm.expression_language.default', false));} else {$definitionsToRemove[] = 'sensio_framework_extra.converter.doctrine.orm.expression_language.default';}}if ($config['view']['annotations']) {$annotationsToLoad[] = 'view.xml';}if ($config['cache']['annotations']) {$annotationsToLoad[] = 'cache.xml';}if ($config['security']['annotations']) {$annotationsToLoad[] = 'security.xml';$container->addResource(new ClassExistenceResource(ExpressionLanguage::class));if (class_exists(ExpressionLanguage::class)) {// this resource can only be added if ExpressionLanguage exists (to avoid a fatal error)$container->addResource(new ClassExistenceResource(SecurityExpressionLanguage::class));if (class_exists(SecurityExpressionLanguage::class)) {$container->setAlias('sensio_framework_extra.security.expression_language', new Alias($config['security']['expression_language'], false));} else {$definitionsToRemove[] = 'sensio_framework_extra.security.expression_language.default';}} else {$definitionsToRemove[] = 'sensio_framework_extra.security.expression_language.default';}}if ($annotationsToLoad) {// must be first$loader->load('annotations.xml');foreach ($annotationsToLoad as $configFile) {$loader->load($configFile);}if ($config['request']['converters']) {$container->getDefinition('sensio_framework_extra.converter.listener')->replaceArgument(1, $config['request']['auto_convert']);}}if (!empty($config['templating']['controller_patterns'])) {$container->getDefinition('sensio_framework_extra.view.guesser')->addArgument($config['templating']['controller_patterns']);}foreach ($definitionsToRemove as $definition) {$container->removeDefinition($definition);}}/*** Returns the base path for the XSD files.** @return string The XSD base path*/public function getXsdValidationBasePath(){return __DIR__.'/../Resources/config/schema';}/*** @return string*/public function getNamespace(){return 'http://symfony.com/schema/dic/symfony_extra';}}