Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Verificación de la configuración en symfony

24 de enero de 2016

Buenos días:

Estoy creando un bundle y estoy jugando con el fichero de configuración y me han surgido unas dudas sobre la verficacion de la misma. Os adjunto mi configuración:

namespace CarlosGude\BookingBundle\DependencyInjection;
 
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;
use Symfony\Component\Validator\Constraints\EmailValidator;
 
/**
 * 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/configuration.html}
 */
class Configuration implements ConfigurationInterface
{
    /**
     * {@inheritdoc}
     */
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('carlos_gude_booking');
 
        $rootNode->children()
                    ->booleanNode('showFlash')
                        ->defaultTrue()
                    ->end()
                    ->booleanNode('autoSaveBooking')
                        ->defaultTrue()
                    ->end()
                    ->booleanNode('hasDateEnd')
                        ->defaultTrue()
                    ->end()
                    ->scalarNode('discriminatorElement')
                        ->defaultValue('id')
                        ->cannotBeEmpty()
                    ->end()
                    ->arrayNode('class')
                        ->children()
                            ->scalarNode('masterElementEntity')
                                ->isRequired()
                                ->cannotBeEmpty()
                            ->end()
                            ->scalarNode('bookingElementEntity')
                                ->isRequired()
                                ->cannotBeEmpty()
                            ->end()
                            ->scalarNode('bookingEnetity')
                                ->isRequired()
                                ->cannotBeEmpty()
                            ->end()
                        ->end()
                    ->end()
                ->end();
 
        return $treeBuilder;
    }
}

masterElementEntity, bookingElementEntity y bookingEnetity son las clases que tienes que pasarle al bundle para que funcione, pero tiene que implementar un interface (cada una uno distinto). ¿Cual es la manera correcta de verficarlo? En caso de que no esten implentando de manera correcta, ¿Cual es la manera de avisar al usuario de que no lo está haciendo correctamente?

Saludos