FrameworkBundle.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace Symfony\Bundle\FrameworkBundle;
  3. use Symfony\Framework\Bundle\Bundle;
  4. use Symfony\Components\DependencyInjection\ParameterBag\ParameterBagInterface;
  5. use Symfony\Components\DependencyInjection\Loader\XmlFileLoader;
  6. use Symfony\Components\DependencyInjection\ContainerBuilder;
  7. use Symfony\Bundle\FrameworkBundle\DependencyInjection\WebExtension;
  8. /*
  9. * This file is part of the Symfony framework.
  10. *
  11. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  12. *
  13. * This source file is subject to the MIT license that is bundled
  14. * with this source code in the file LICENSE.
  15. */
  16. /**
  17. * Bundle.
  18. *
  19. * @author Fabien Potencier <fabien.potencier@symfony-project.com>
  20. */
  21. class FrameworkBundle extends Bundle
  22. {
  23. /**
  24. * Customizes the Container instance.
  25. *
  26. * @param ParameterBagInterface $parameterBag A ParameterBagInterface instance
  27. *
  28. * @return ContainerBuilder A ContainerBuilder instance
  29. */
  30. public function buildContainer(ParameterBagInterface $parameterBag)
  31. {
  32. ContainerBuilder::registerExtension(new WebExtension($parameterBag->get('kernel.bundle_dirs'), $parameterBag->get('kernel.bundles')));
  33. $dirs = array('%kernel.root_dir%/views/%%bundle%%/%%controller%%/%%name%%%%format%%.%%renderer%%');
  34. foreach ($parameterBag->get('kernel.bundle_dirs') as $dir) {
  35. $dirs[] = $dir.'/%%bundle%%/Resources/views/%%controller%%/%%name%%%%format%%.%%renderer%%';
  36. }
  37. $parameterBag->set('templating.loader.filesystem.path', $dirs);
  38. $container = new ContainerBuilder();
  39. if ($parameterBag->get('kernel.debug')) {
  40. $loader = new XmlFileLoader($container, __DIR__.'/Resources/config');
  41. $loader->load('debug.xml');
  42. }
  43. return $container;
  44. }
  45. }