Explorar o código

[SwiftmailerBundle] made data collector configurable via the logging option

Fabien Potencier %!s(int64=14) %!d(string=hai) anos
pai
achega
8c6f135534

+ 3 - 1
src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/Configuration.php

@@ -65,7 +65,9 @@ class Configuration
                 ->scalarNode('path')->defaultValue('%kernel.cache_dir%/swiftmailer/spool')->end()
             ->end()
             ->scalarNode('delivery_address')->end()
-            ->booleanNode('disable_delivery')->end();
+            ->booleanNode('disable_delivery')->end()
+            ->booleanNode('logging')->defaultValue(false)->end()
+        ;
 
         return $treeBuilder->buildTree();
     }

+ 4 - 1
src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/SwiftmailerExtension.php

@@ -93,7 +93,10 @@ class SwiftmailerExtension extends Extension
             }
         }
 
-        $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.messagelogger')));
+        if ($config['logging']) {
+            $container->findDefinition('swiftmailer.transport')->addMethodCall('registerPlugin', array(new Reference('swiftmailer.plugin.messagelogger')));
+            $container->findDefinition('data_collector.swiftmailer')->addTag('data_collector', array('template' => 'SwiftmailerBundle:Collector:swiftmailer', 'id' => 'swiftmailer'));
+        }
 
         if (isset($config['delivery_address']) && $config['delivery_address']) {
             $container->setParameter('swiftmailer.single_address', $config['delivery_address']);

+ 1 - 0
src/Symfony/Bundle/SwiftmailerBundle/Resources/config/schema/swiftmailer-1.0.xsd

@@ -22,6 +22,7 @@
     <xsd:attribute name="type" type="xsd:string" />
     <xsd:attribute name="delivery-address" type="xsd:string" />
     <xsd:attribute name="disable-delivery" type="xsd:boolean" />
+    <xsd:attribute name="logging" type="xsd:string" />
   </xsd:complexType>
 
   <xsd:complexType name="spool">

+ 1 - 2
src/Symfony/Bundle/SwiftmailerBundle/Resources/config/swiftmailer.xml

@@ -68,8 +68,7 @@
 
     <service id="swiftmailer.plugin.messagelogger" class="%swiftmailer.plugin.messagelogger.class%" public="false" />
 
-    <service id="swiftmailer.data_collector" class="%swiftmailer.data_collector.class%" public="false">
-        <tag name="data_collector" template="SwiftmailerBundle:Collector:message" id="swiftmailer" />
+    <service id="data_collector.swiftmailer" class="%swiftmailer.data_collector.class%" public="false">
         <argument type="service" id="swiftmailer.plugin.messagelogger" />
         <argument type="service" id="swiftmailer.mailer" />
     </service>