From ac8e1e29e972b39a50f36a1fa08e0d5e45754c84 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Tue, 10 Aug 2010 15:09:55 +0200 Subject: [PATCH] updated bootstrap file --- src/Symfony/Framework/bootstrap.php | 51 ++++++++++++++--------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/src/Symfony/Framework/bootstrap.php b/src/Symfony/Framework/bootstrap.php index 3e298cf5e7..256ae00621 100644 --- a/src/Symfony/Framework/bootstrap.php +++ b/src/Symfony/Framework/bootstrap.php @@ -145,26 +145,16 @@ class KernelBundle extends Bundle public function buildContainer(ParameterBagInterface $parameterBag) { ContainerBuilder::registerExtension(new KernelExtension()); - - $container = new ContainerBuilder(); - - $loader = new XmlFileLoader($container, array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); - $loader->load('services.xml'); - - if ($parameterBag->get('kernel.debug')) { - $loader->load('debug.xml'); - $container->setDefinition('event_dispatcher', $container->findDefinition('debug.event_dispatcher')); - } - - return $container; } public function boot(ContainerInterface $container) { - $container->getErrorHandlerService(); + if ($container->has('error_handler')) { + $container['error_handler']; + } - if ($container->getParameter('kernel.include_core_classes')) { + if ($container->getParameterBag()->has('kernel.include_core_classes') && $container->getParameter('kernel.include_core_classes')) { ClassCollectionLoader::load($container->getParameter('kernel.compiled_classes'), $container->getParameter('kernel.cache_dir'), 'classes', $container->getParameter('kernel.debug')); } } @@ -182,13 +172,12 @@ use Symfony\Components\DependencyInjection\ContainerBuilder; class KernelExtension extends Extension { + public function testLoad($config, ContainerBuilder $container) { $loader = new XmlFileLoader($container, array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); $loader->load('test.xml'); $container->setParameter('kernel.include_core_classes', false); - - return $container; } @@ -221,12 +210,21 @@ class KernelExtension extends Extension $container->setParameter('session.session', 'session.session.'.strtolower($class)); } - - return $container; } + public function configLoad($config, ContainerBuilder $container) { + if (!$container->hasDefinition('event_dispatcher')) { + $loader = new XmlFileLoader($container, array(__DIR__.'/../Resources/config', __DIR__.'/Resources/config')); + $loader->load('services.xml'); + + if ($container->getParameter('kernel.debug')) { + $loader->load('debug.xml'); + $container->setDefinition('event_dispatcher', $container->findDefinition('debug.event_dispatcher')); + } + } + if (isset($config['charset'])) { $container->setParameter('kernel.charset', $config['charset']); } @@ -265,11 +263,14 @@ class KernelExtension extends Extension } $container->setParameter('kernel.compiled_classes', $classes); - if (array_key_exists('error_handler_level', $config)) { - $container->setParameter('error_handler.level', $config['error_handler_level']); + if (array_key_exists('error_handler', $config)) { + if (false === $config['error_handler']) { + $container->getDefinition('error_handler')->setMethodCalls(array()); + } else { + $container->getDefinition('error_handler')->addMethodCall('register', array()); + $container->setParameter('error_handler.level', $config['error_handler']); + } } - - return $container; } @@ -315,11 +316,9 @@ class ErrorHandler $this->level = null === $level ? error_reporting() : $level; } - public function register($enable=true) + public function register() { - if($enable) { - set_error_handler(array($this, 'handle')); - } + set_error_handler(array($this, 'handle')); }