Symfony2でsftp

pure PHP 実装の phpseclib のSymfony2バンドル sinner/PhpseclibBundle を使って、sftpを試してみます。

composer.json に以下を追加しまして。

{
    "require": {
        ...
        "sinner/phpseclib-bundle": "dev-master"
        ...
    }
}

インストールします。

$ php composer.phar update sinner/phpseclib-bundle
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing sinner/phpseclib-bundle (dev-master 3349fc2)
    Cloning 3349fc2b0948cb294cbf8d630af247139a88dc47

Writing lock file
Generating autoload files
Updating the "app/config/parameters.yml" file
...

バンドルを有効化するために app/appKernel.php に以下を追加します。

$bundles = array(
    ...
   new Sinner\Phpseclib\PhpseclibBundle();
    ...
);

コードスニペットはこんな感じでしょうか。

use Sinner\Phpseclib\Net\Net_SFTP as NetSftp;
...
$sftp = new NetSftp('127.0.0.1');
if (!$sftp->login('username', 'passwd')) {
    exit('Login Failed');
}

print_r($sftp->pwd());
print_r($sftp->nlist());

Windowsのsftpサーバは freeFTPd がお気軽みたいです。

へぇー。