vendor/stof/doctrine-extensions-bundle/DependencyInjection/Configuration.php line 18

Open in your IDE?
  1. <?php
  2. namespace Stof\DoctrineExtensionsBundle\DependencyInjection;
  3. use Symfony\Component\Config\Definition\Builder\TreeBuilder;
  4. use Symfony\Component\Config\Definition\ConfigurationInterface;
  5. class Configuration implements ConfigurationInterface
  6. {
  7.     /**
  8.      * Generates the configuration tree.
  9.      *
  10.      * @return TreeBuilder
  11.      */
  12.     public function getConfigTreeBuilder()
  13.     {
  14.         $treeBuilder = new TreeBuilder();
  15.         $rootNode $treeBuilder->root('stof_doctrine_extensions');
  16.         $rootNode
  17.             ->append($this->getVendorNode('orm'))
  18.             ->append($this->getVendorNode('mongodb'))
  19.             ->append($this->getClassNode())
  20.             ->append($this->getUploadableNode())
  21.             ->children()
  22.                 ->scalarNode('default_locale')
  23.                     ->cannotBeEmpty()
  24.                     ->defaultValue('en')
  25.                 ->end()
  26.                 ->booleanNode('translation_fallback')->defaultFalse()->end()
  27.                 ->booleanNode('persist_default_translation')->defaultFalse()->end()
  28.                 ->booleanNode('skip_translation_on_load')->defaultFalse()->end()
  29.             ->end()
  30.         ;
  31.         return $treeBuilder;
  32.     }
  33.     /**
  34.      * @param string $name
  35.      */
  36.     private function getVendorNode($name)
  37.     {
  38.         $treeBuilder = new TreeBuilder();
  39.         $node $treeBuilder->root($name);
  40.         $node
  41.             ->useAttributeAsKey('id')
  42.             ->prototype('array')
  43.                 ->children()
  44.                     ->scalarNode('translatable')->defaultFalse()->end()
  45.                     ->scalarNode('timestampable')->defaultFalse()->end()
  46.                     ->scalarNode('blameable')->defaultFalse()->end()
  47.                     ->scalarNode('sluggable')->defaultFalse()->end()
  48.                     ->scalarNode('tree')->defaultFalse()->end()
  49.                     ->scalarNode('loggable')->defaultFalse()->end()
  50.                     ->scalarNode('sortable')->defaultFalse()->end()
  51.                     ->scalarNode('softdeleteable')->defaultFalse()->end()
  52.                     ->scalarNode('uploadable')->defaultFalse()->end()
  53.                     ->scalarNode('reference_integrity')->defaultFalse()->end()
  54.                 ->end()
  55.             ->end()
  56.         ;
  57.         return $node;
  58.     }
  59.     private function getClassNode()
  60.     {
  61.         $treeBuilder = new TreeBuilder();
  62.         $node $treeBuilder->root('class');
  63.         $node
  64.             ->addDefaultsIfNotSet()
  65.             ->children()
  66.                 ->scalarNode('translatable')
  67.                     ->cannotBeEmpty()
  68.                     ->defaultValue('Gedmo\Translatable\TranslatableListener')
  69.                 ->end()
  70.                 ->scalarNode('timestampable')
  71.                     ->cannotBeEmpty()
  72.                     ->defaultValue('Gedmo\\Timestampable\\TimestampableListener')
  73.                 ->end()
  74.                 ->scalarNode('blameable')
  75.                     ->cannotBeEmpty()
  76.                     ->defaultValue('Gedmo\\Blameable\\BlameableListener')
  77.                 ->end()
  78.                 ->scalarNode('sluggable')
  79.                     ->cannotBeEmpty()
  80.                     ->defaultValue('Gedmo\\Sluggable\\SluggableListener')
  81.                 ->end()
  82.                 ->scalarNode('tree')
  83.                     ->cannotBeEmpty()
  84.                     ->defaultValue('Gedmo\\Tree\\TreeListener')
  85.                 ->end()
  86.                 ->scalarNode('loggable')
  87.                     ->cannotBeEmpty()
  88.                     ->defaultValue('Gedmo\Loggable\LoggableListener')
  89.                 ->end()
  90.                 ->scalarNode('sortable')
  91.                     ->cannotBeEmpty()
  92.                     ->defaultValue('Gedmo\\Sortable\\SortableListener')
  93.                 ->end()
  94.                 ->scalarNode('softdeleteable')
  95.                     ->cannotBeEmpty()
  96.                     ->defaultValue('Gedmo\\SoftDeleteable\\SoftDeleteableListener')
  97.                 ->end()
  98.                 ->scalarNode('uploadable')
  99.                     ->cannotBeEmpty()
  100.                     ->defaultValue('Gedmo\\Uploadable\\UploadableListener')
  101.                 ->end()
  102.                 ->scalarNode('reference_integrity')
  103.                     ->cannotBeEmpty()
  104.                     ->defaultValue('Gedmo\\ReferenceIntegrity\\ReferenceIntegrityListener')
  105.                 ->end()
  106.             ->end()
  107.         ;
  108.         return $node;
  109.     }
  110.     private function getUploadableNode()
  111.     {
  112.         $treeBuilder = new TreeBuilder();
  113.         $node $treeBuilder->root('uploadable');
  114.         $node
  115.             ->addDefaultsIfNotSet()
  116.             ->children()
  117.                 ->scalarNode('default_file_path')
  118.                     ->cannotBeEmpty()
  119.                     ->defaultNull()
  120.                 ->end()
  121.                 ->scalarNode('mime_type_guesser_class')
  122.                     ->cannotBeEmpty()
  123.                     ->defaultValue('Stof\\DoctrineExtensionsBundle\\Uploadable\\MimeTypeGuesserAdapter')
  124.                 ->end()
  125.                 ->scalarNode('default_file_info_class')
  126.                     ->cannotBeEmpty()
  127.                     ->defaultValue('Stof\\DoctrineExtensionsBundle\\Uploadable\\UploadedFileInfo')
  128.                 ->end()
  129.                 ->booleanNode('validate_writable_directory')->defaultTrue()->end()
  130.             ->end()
  131.         ;
  132.         return $node;
  133.     }
  134. }