setDefinition($id, new DefinitionDecorator('knp_gaufrette.adapter.ftp')) ->addArgument($config['directory']) ->addArgument($config['host']) ->addArgument($config['username']) ->addArgument($config['password']) ->addArgument($config['port']) ->addArgument($config['passive']) ->addArgument($config['create']) ->addArgument($config['mode']) ; } /** * {@inheritDoc} */ function getKey() { return 'ftp'; } /** * {@inheritDoc} */ function addConfiguration(NodeDefinition $builder) { $builder ->children() ->scalarNode('directory')->isRequired()->end() ->scalarNode('host')->isRequired()->end() ->scalarNode('port')->defaultValue(21)->end() ->scalarNode('username')->defaultNull()->end() ->scalarNode('password')->defaultNull()->end() ->booleanNode('passive')->defaultFalse()->end() ->booleanNode('create')->defaultFalse()->end() ->scalarNode('mode') ->defaultValue(FTP_ASCII) ->beforeNormalization() ->ifString() ->then(function($v) { return constant($v); }) ->end() ->end() ; } }