* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Bundle\WebProfilerBundle\DependencyInjection; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; use Symfony\Bundle\WebProfilerBundle\EventListener\WebDebugToolbarListener; /** * WebProfilerExtension. * * Usage: * * * * @author Fabien Potencier */ class WebProfilerExtension extends Extension { /** * Loads the web profiler configuration. * * @param array $configs An array of configuration settings * @param ContainerBuilder $container A ContainerBuilder instance */ 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')); $loader->load('profiler.xml'); $loader->load('toolbar.xml'); $container->setParameter('web_profiler.debug_toolbar.intercept_redirects', $config['intercept_redirects']); if (!$config['toolbar']) { $mode = WebDebugToolbarListener::DISABLED; } else { $mode = WebDebugToolbarListener::ENABLED; } $container->setParameter('web_profiler.debug_toolbar.mode', $mode); $container->setParameter('web_profiler.debug_toolbar.position', $config['position']); } /** * Returns the base path for the XSD files. * * @return string The XSD base path */ public function getXsdValidationBasePath() { return __DIR__.'/../Resources/config/schema'; } public function getNamespace() { return 'http://symfony.com/schema/dic/webprofiler'; } }