A Simple SFTP wrapper for Silex
- Easy setup.
- Files : List, Upload, Download, Rename, Delete.
- Folders: List, Mkdir, Rename, Delete.
- PHP 5.3+
- ext-ssh2
- monolog/monolog (through the MonologServiceProvider)
// Installing php-ssh2
$ sudo apt-get install libssh2-php
// checking if all is good
$ php -m |grep ssh2
$ composer require achrafsoltani/sftp-service-provider
require_once __DIR__.'/vendor/autoload.php';
use Silex\Application;
use AchrafSoltani\Provider\SftpServiceProvider;
use Silex\Provider\MonologServiceProvider;
$app = new Application();
// Monolog
$app->register(new Silex\Provider\MonologServiceProvider(), array(
'monolog.logfile' => __DIR__.'/logs/development.log',
));
// SFTP
$app->register(new SftpServiceProvider(), array(
'sftp.options' => array(
'hostname' => 'domain.tld', // or IP address
'username' => 'root',
'password' => 'your_ssh_password',
'port' => '22' // optional
)
));
// Usage
$app->run();
- Example 1 : Listing files in a directory
$dirs = $app['sftp']->list_files('/home/user/');
var_dump($dirs);
- Example 2 : Downloading a File
$app['sftp']->download('/home/user/source_file.ext', '/home/user/path/to/destination/downloaded.ext');