diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index d49964b1..388d1ab0 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -175,7 +175,7 @@ * - subject: string * - [level]: level name or int value, defaults to DEBUG * - [bubble]: bool, defaults to true - * - [headers]: optional array containing additional headers + * - [headers]: optional array containing additional headers: ['Foo: Bar', '...'] * * - socket: * - connection_string: string @@ -348,6 +348,7 @@ public function getConfigTreeBuilder() ->fixXmlConfig('excluded_http_code') ->fixXmlConfig('tag') ->fixXmlConfig('accepted_level') + ->fixXmlConfig('header') ->canBeUnset() ->children() ->scalarNode('type') diff --git a/DependencyInjection/MonologExtension.php b/DependencyInjection/MonologExtension.php index 500a041b..ac1866aa 100644 --- a/DependencyInjection/MonologExtension.php +++ b/DependencyInjection/MonologExtension.php @@ -541,7 +541,7 @@ private function buildHandler(ContainerBuilder $container, $name, array $handler $handler['bubble'], )); if (!empty($handler['headers'])) { - $definition->addMethodCall('addHeader', $handler['headers']); + $definition->addMethodCall('addHeader', [$handler['headers']]); } break; diff --git a/Resources/config/schema/monolog-1.0.xsd b/Resources/config/schema/monolog-1.0.xsd index 6c23e93a..38a6bba9 100644 --- a/Resources/config/schema/monolog-1.0.xsd +++ b/Resources/config/schema/monolog-1.0.xsd @@ -28,6 +28,7 @@ + @@ -88,7 +89,6 @@ - @@ -189,8 +189,8 @@ - - - + + + diff --git a/Tests/DependencyInjection/FixtureMonologExtensionTest.php b/Tests/DependencyInjection/FixtureMonologExtensionTest.php index 23c0cfd7..9a40ee3c 100644 --- a/Tests/DependencyInjection/FixtureMonologExtensionTest.php +++ b/Tests/DependencyInjection/FixtureMonologExtensionTest.php @@ -216,6 +216,17 @@ public function testPsr3MessageProcessingDisabled() $this->assertNotContains(array('pushProcessor', array(new Reference('monolog.processor.psr_log_message'))), $methodCalls, 'The PSR-3 processor should not be enabled', false, false); } + public function testNativeMailer() + { + $container = $this->getContainer('native_mailer'); + + $logger = $container->getDefinition('monolog.handler.mailer'); + $methodCalls = $logger->getMethodCalls(); + + $this->assertCount(2, $methodCalls); + $this->assertSame(['addHeader', [['Foo: bar', 'Baz: inga']]], $methodCalls[1]); + } + protected function getContainer($fixture) { $container = new ContainerBuilder(); diff --git a/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml b/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml new file mode 100644 index 00000000..8c3e8242 --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/xml/native_mailer.xml @@ -0,0 +1,15 @@ + + + + + + +
Foo: bar
+
Baz: inga
+
+
+
diff --git a/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml b/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml new file mode 100644 index 00000000..4950a38f --- /dev/null +++ b/Tests/DependencyInjection/Fixtures/yml/native_mailer.yml @@ -0,0 +1,10 @@ +monolog: + handlers: + mailer: + type: native_mailer + from_email: foo@example.com + to_email: bar@exemple.com + subject: a subject + headers: + - "Foo: bar" + - "Baz: inga"