<?php
namespace WAM\Bundle\MediaBundle\DependencyInjection;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use WAM\Component\Media\Filter\CropFilter;
use WAM\Component\Media\Filter\ResizeFilter;
/**
* 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}.
*
* @author Miguel Vilata <mvilata@wearemarketing.com>
*/
class Configuration implements ConfigurationInterface
{
/**
* {@inheritdoc}
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder();
$rootNode = $treeBuilder->root('wam_media');
$rootNode
->children()
->arrayNode('class')
->addDefaultsIfNotSet()
->children()
->scalarNode('media')->isRequired()->end()
->scalarNode('gallery')->isRequired()->end()
->scalarNode('gallery_has_media')->isRequired()->end()
->scalarNode('category')->isRequired()->end()
->arrayNode('media_classes')
->useAttributeAsKey('class')
->prototype('scalar')->end()
->end()
->end()
->end()
->arrayNode('filters')
->useAttributeAsKey('name')
->defaultValue([
'resize' => ResizeFilter::class,
'crop' => CropFilter::class,
])
->prototype('scalar')->end()
->end()
->scalarNode('cdn_path')->cannotBeEmpty()->defaultValue('/uploads')->end()
->scalarNode('filesystem_local_directory')->cannotBeEmpty()->defaultValue('%kernel.root_dir%/../public/uploads')->end()
->arrayNode('external_medias')
->useAttributeAsKey('class')
->prototype('scalar')->end()
->end()
->end();
return $treeBuilder;
}
}