diff --git a/DependencyInjection/Factory/SftpAdapterFactory.php b/DependencyInjection/Factory/SftpAdapterFactory.php new file mode 100644 index 0000000..8899573 --- /dev/null +++ b/DependencyInjection/Factory/SftpAdapterFactory.php @@ -0,0 +1,49 @@ +setDefinition($id, new DefinitionDecorator('knp_gaufrette.adapter.sftp')) + ->addArgument(new Reference($config['sftp_id'])) + ->addArgument($config['directory']) + ->addArgument($config['create']) + ; + } + + /** + * {@inheritDoc} + */ + function getKey() + { + return 'sftp'; + } + + /** + * {@inheritDoc} + */ + function addConfiguration(NodeDefinition $builder) + { + $builder + ->children() + ->scalarNode('sftp_id')->isRequired()->end() + ->scalarNode('directory')->defaultNull()->end() + ->booleanNode('create')->defaultFalse()->end() + ->end() + ; + } +} diff --git a/README.markdown b/README.markdown index e19202c..1abf484 100644 --- a/README.markdown +++ b/README.markdown @@ -321,6 +321,56 @@ knp_gaufrette: mode: FTP_BINARY ``` +## Sftp + +Adapter for SFTP (SSH-FTP). + +### Parameters + + * `sftp_id` The id of the service that provides SFTP access. + * `directory* The distant directory *(default null)*. + * `create` Whether to create the directory if it does not exist *(default false)*. + +### Example + +``` yaml +# app/config/config.yml +knp_gaufrette: + adapters: + foo: + sftp: + sftp_id: acme_test.sftp + directory: /example/sftp + create: true +``` + +In your AcmeTestBundle, add following service definitions: + +``` yaml +# src/Acme/TestBundle/Resources/config/services.yml +parameters: + acme_test.ssh.host: my_host_name + acme_test.ssh.username: user_name + acme_test.ssh.password: some_secret + +services: + acme_test.ssh.configuration: + class: Ssh\Configuration + arguments: [%acme_test.ssh.host%] + + acme_test.ssh.authentication: + class: Ssh\Authentication\Password + arguments: [%acme_test.ssh.username%, %acme_test.ssh.password%] + + acme_test.ssh.session: + class: Ssh\Session + arguments: [@acme_test.ssh.configuration, @acme_test.ssh.authentication] + + acme_test.sftp: + class: Ssh\Sftp + arguments: [@acme_test.ssh.session] +``` + ## Apc Adapter for APC. diff --git a/Resources/config/adapter_factories.xml b/Resources/config/adapter_factories.xml index 4d52403..d583ded 100644 --- a/Resources/config/adapter_factories.xml +++ b/Resources/config/adapter_factories.xml @@ -32,6 +32,9 @@ + + + diff --git a/Resources/config/gaufrette.xml b/Resources/config/gaufrette.xml index db8720d..d24a556 100644 --- a/Resources/config/gaufrette.xml +++ b/Resources/config/gaufrette.xml @@ -30,6 +30,7 @@ +