KernelExtension.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace Symfony\Foundation\Bundle;
  3. use Symfony\Components\DependencyInjection\Loader\LoaderExtension;
  4. use Symfony\Components\DependencyInjection\Loader\XmlFileLoader;
  5. use Symfony\Components\DependencyInjection\BuilderConfiguration;
  6. /*
  7. * This file is part of the Symfony package.
  8. *
  9. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  10. *
  11. * For the full copyright and license information, please view the LICENSE
  12. * file that was distributed with this source code.
  13. */
  14. /**
  15. * KernelExtension.
  16. *
  17. * @package Symfony
  18. * @subpackage Foundation
  19. * @author Fabien Potencier <fabien.potencier@symfony-project.org>
  20. */
  21. class KernelExtension extends LoaderExtension
  22. {
  23. public function testLoad($config)
  24. {
  25. $configuration = new BuilderConfiguration();
  26. $loader = new XmlFileLoader(array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config'));
  27. $configuration->merge($loader->load('test.xml'));
  28. $configuration->setParameter('kernel.include_core_classes', false);
  29. return $configuration;
  30. }
  31. public function configLoad($config)
  32. {
  33. $configuration = new BuilderConfiguration();
  34. if (isset($config['charset'])) {
  35. $configuration->setParameter('kernel.charset', $config['charset']);
  36. }
  37. if (!array_key_exists('compilation', $config)) {
  38. $classes = array(
  39. 'Symfony\\Components\\Routing\\Router',
  40. 'Symfony\\Components\\Routing\\RouterInterface',
  41. 'Symfony\\Components\\EventDispatcher\\Event',
  42. 'Symfony\\Components\\Routing\\Matcher\\UrlMatcherInterface',
  43. 'Symfony\\Components\\Routing\\Matcher\\UrlMatcher',
  44. 'Symfony\\Components\\HttpKernel\\HttpKernel',
  45. 'Symfony\\Components\\HttpKernel\\Request',
  46. 'Symfony\\Components\\HttpKernel\\Response',
  47. 'Symfony\\Components\\HttpKernel\\Listener\\ResponseFilter',
  48. 'Symfony\\Components\\Templating\\Loader\\LoaderInterface',
  49. 'Symfony\\Components\\Templating\\Loader\\Loader',
  50. 'Symfony\\Components\\Templating\\Loader\\FilesystemLoader',
  51. 'Symfony\\Components\\Templating\\Engine',
  52. 'Symfony\\Components\\Templating\\Renderer\\RendererInterface',
  53. 'Symfony\\Components\\Templating\\Renderer\\Renderer',
  54. 'Symfony\\Components\\Templating\\Renderer\\PhpRenderer',
  55. 'Symfony\\Components\\Templating\\Storage\\Storage',
  56. 'Symfony\\Components\\Templating\\Storage\\FileStorage',
  57. 'Symfony\\Framework\\WebBundle\\Controller',
  58. 'Symfony\\Framework\\WebBundle\\Listener\\RequestParser',
  59. 'Symfony\\Framework\\WebBundle\\Listener\\ControllerLoader',
  60. 'Symfony\\Framework\\WebBundle\\Templating\\Engine',
  61. );
  62. } else {
  63. $classes = array();
  64. foreach (explode("\n", $config['compilation']) as $class) {
  65. if ($class) {
  66. $classes[] = trim($class);
  67. }
  68. }
  69. }
  70. $configuration->setParameter('kernel.compiled_classes', $classes);
  71. if (array_key_exists('error_handler_level', $config)) {
  72. $configuration->setParameter('error_handler.level', $config['error_handler_level']);
  73. }
  74. return $configuration;
  75. }
  76. /**
  77. * Returns the base path for the XSD files.
  78. *
  79. * @return string The XSD base path
  80. */
  81. public function getXsdValidationBasePath()
  82. {
  83. return false;
  84. }
  85. public function getNamespace()
  86. {
  87. return 'http://www.symfony-project.org/schema/dic/symfony/kernel';
  88. }
  89. public function getAlias()
  90. {
  91. return 'kernel';
  92. }
  93. }