Configuration.php 1.49 KiB
<?php
namespace Irstea\FileUploadBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
/**
 * This is the class that validates and merges configuration from your app/config files
 * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class}
class Configuration implements ConfigurationInterface
    /**
     * {@inheritdoc}
    public function getConfigTreeBuilder()
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('irstea_file_upload');
         $rootNode
            ->children()
                 ->integerNode('max_chunk_size')
                    ->beforeNormalization()
                        ->ifString()
                        ->then(function($v) {
                            $int = intval($v);
                            if(strpos($v, "K")) {
                                return 1000*$int;
                            if(strpos($v, "M")) {
                                return 1000000*$int;
                            return $int;
                    ->end()
                    ->defaultValue(0)
                    ->treatNullLike(0)
                    ->treatFalseLike(0)
                    ->min(0)
                 ->end()
            ->end();
        return $treeBuilder;