diff --git a/DependencyInjection/BuzzExtension.php b/DependencyInjection/BuzzExtension.php index a2d95c7..df29573 100644 --- a/DependencyInjection/BuzzExtension.php +++ b/DependencyInjection/BuzzExtension.php @@ -6,21 +6,21 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\DefinitionDecorator; -use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; +use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\HttpKernel\DependencyInjection\Extension; class BuzzExtension extends Extension { /** - * @inheritdoc + * {@inheritdoc} */ public function load(array $configs, ContainerBuilder $container) { $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('buzz.xml'); - $configuration = new Configuration(); + $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); if ($config['throw_exception']) { @@ -39,6 +39,14 @@ public function load(array $configs, ContainerBuilder $container) return $config; } + /** + * {@inheritdoc} + */ + public function getConfiguration(array $config, ContainerBuilder $container) + { + return new Configuration($container->getParameter('kernel.debug')); + } + private function loadListenersSection(array $config, ContainerBuilder $container) { $listeners = array(); @@ -68,9 +76,9 @@ private function createBrowser($name, array $config, ContainerBuilder $container { $browser = 'buzz.browser.'.$name; - $definition = $container->register($browser, 'Buzz\Browser') - ->setArguments(array(null, null)) - ; + $definition = $container + ->register($browser, 'Buzz\Browser') + ->setArguments(array(null, null)); if (null !== $config['message_factory']) { $factory = 'buzz.message_factory.'.$name; @@ -79,9 +87,9 @@ private function createBrowser($name, array $config, ContainerBuilder $container $definition->replaceArgument(1, new Reference($factory)); } - $container->getDefinition('buzz.browser_manager') - ->addMethodCall('set', array($name, new Reference($browser))) - ; + $container + ->getDefinition('buzz.browser_manager') + ->addMethodCall('set', array($name, new Reference($browser))); $browser = $container->getDefinition($browser); @@ -92,8 +100,7 @@ private function createBrowser($name, array $config, ContainerBuilder $container $container ->register($listener, 'Buzz\Bundle\BuzzBundle\Buzz\Listener\HostListener') - ->addArgument($config['host']) - ; + ->addArgument($config['host']); $browser->addMethodCall('addListener', array(new Reference($listener))); } @@ -117,6 +124,26 @@ private function configureClientBrowser($name, Definition $browser, array $confi $definition->addMethodCall('setProxy', array($proxy)); } + $maxRedirects = $config['client']['max_redirects']; + if (null !== $maxRedirects) { + $definition->addMethodCall('setMaxRedirects', array($maxRedirects)); + } + + $verifyPeer = $config['client']['verify_peer']; + if (null !== $verifyPeer) { + $definition->addMethodCall('setVerifyPeer', array($verifyPeer)); + } + + $verifyHost = $config['client']['verify_host']; + if (null !== $verifyHost) { + $definition->addMethodCall('setVerifyHost', array($verifyHost)); + } + + $ignoreErrors = $config['client']['ignore_errors']; + if (null !== $ignoreErrors) { + $definition->addMethodCall('setIgnoreErrors', array($ignoreErrors)); + } + $browser->replaceArgument(0, new Reference('buzz.client.'.$name)); } @@ -126,9 +153,9 @@ private function loadProfiler(array $browserNames, ContainerBuilder $container) $loader->load('datacollector.xml'); foreach($browserNames as $name) { - $container->getDefinition('buzz.browser.'.$name) - ->addMethodCall('addListener', array(new Reference('buzz.listener.history'))) - ; + $container + ->getDefinition('buzz.browser.'.$name) + ->addMethodCall('addListener', array(new Reference('buzz.listener.history'))); } } diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 0b789b8..cbb8a77 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -8,17 +8,24 @@ class Configuration implements ConfigurationInterface { + private $debug; + + public function __construct($debug) + { + $this->debug = (bool) $debug; + } + /** * @inheritdoc */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); - $rootNode = $treeBuilder->root("buzz"); + $rootNode = $treeBuilder->root('buzz'); $rootNode ->children() - ->booleanNode('profiler')->defaultValue('%kernel.debug%')->end() + ->booleanNode('profiler')->defaultValue($this->debug)->end() ->booleanNode('throw_exception')->defaultValue(true)->end() ->end() ->end() @@ -84,6 +91,10 @@ private function getClientConfiguration() ->scalarNode('name')->end() ->scalarNode('timeout')->defaultNull()->end() ->scalarNode('proxy')->defaultNull()->end() + ->scalarNode('max_redirects')->defaultNull()->end() + ->scalarNode('verify_peer')->defaultNull()->end() + ->scalarNode('verify_host')->defaultNull()->end() + ->scalarNode('ignore_errors')->defaultNull()->end() ->end() ; }