vendor/symfony/src/Symfony/Bundle/SwiftmailerBundle/DependencyInjection/Configuration.php
changeset 0 7f95f8617b0b
equal deleted inserted replaced
-1:000000000000 0:7f95f8617b0b
       
     1 <?php
       
     2 
       
     3 /*
       
     4  * This file is part of the Symfony package.
       
     5  *
       
     6  * (c) Fabien Potencier <fabien@symfony.com>
       
     7  *
       
     8  * For the full copyright and license information, please view the LICENSE
       
     9  * file that was distributed with this source code.
       
    10  */
       
    11 
       
    12 namespace Symfony\Bundle\SwiftmailerBundle\DependencyInjection;
       
    13 
       
    14 use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
       
    15 use Symfony\Component\Config\Definition\Builder\TreeBuilder;
       
    16 use Symfony\Component\Config\Definition\ConfigurationInterface;
       
    17 
       
    18 /**
       
    19  * This class contains the configuration information for the bundle
       
    20  *
       
    21  * This information is solely responsible for how the different configuration
       
    22  * sections are normalized, and merged.
       
    23  *
       
    24  * @author Christophe Coevoet <stof@notk.org>
       
    25  */
       
    26 class Configuration implements ConfigurationInterface
       
    27 {
       
    28     private $debug;
       
    29 
       
    30     /**
       
    31      * Constructor.
       
    32      *
       
    33      * @param Boolean $debug The kernel.debug value
       
    34      */
       
    35     public function __construct($debug)
       
    36     {
       
    37         $this->debug = (Boolean) $debug;
       
    38     }
       
    39 
       
    40     /**
       
    41      * Generates the configuration tree builder.
       
    42      *
       
    43      * @return \Symfony\Component\Config\Definition\Builder\TreeBuilder The tree builder
       
    44      */
       
    45     public function getConfigTreeBuilder()
       
    46     {
       
    47         $treeBuilder = new TreeBuilder();
       
    48         $rootNode = $treeBuilder->root('swiftmailer');
       
    49 
       
    50         $rootNode
       
    51             ->children()
       
    52                 ->scalarNode('transport')->defaultValue('smtp')->end()
       
    53                 ->scalarNode('username')->defaultNull()->end()
       
    54                 ->scalarNode('password')->defaultNull()->end()
       
    55                 ->scalarNode('host')->defaultValue('localhost')->end()
       
    56                 ->scalarNode('port')->defaultFalse()->end()
       
    57                 ->scalarNode('encryption')
       
    58                     ->defaultNull()
       
    59                     ->validate()
       
    60                         ->ifNotInArray(array('tls', 'ssl', null))
       
    61                         ->thenInvalid('The %s encryption is not supported')
       
    62                     ->end()
       
    63                 ->end()
       
    64                 ->scalarNode('auth_mode')
       
    65                     ->defaultNull()
       
    66                     ->validate()
       
    67                         ->ifNotInArray(array('plain', 'login', 'cram-md5', null))
       
    68                         ->thenInvalid('The %s authentication mode is not supported')
       
    69                     ->end()
       
    70                 ->end()
       
    71                 ->arrayNode('spool')
       
    72                     ->children()
       
    73                         ->scalarNode('type')->defaultValue('file')->end()
       
    74                         ->scalarNode('path')->defaultValue('%kernel.cache_dir%/swiftmailer/spool')->end()
       
    75                     ->end()
       
    76                 ->end()
       
    77                 ->scalarNode('sender_address')->end()
       
    78                 ->arrayNode('antiflood')
       
    79                     ->children()
       
    80                         ->scalarNode('threshold')->defaultValue(99)->end()
       
    81                         ->scalarNode('sleep')->defaultValue(0)->end()
       
    82                     ->end()
       
    83                 ->end()
       
    84                 ->scalarNode('delivery_address')->end()
       
    85                 ->booleanNode('disable_delivery')->end()
       
    86                 ->booleanNode('logging')->defaultValue($this->debug)->end()
       
    87             ->end()
       
    88         ;
       
    89 
       
    90         return $treeBuilder;
       
    91     }
       
    92 }