gsu/ftp-sftp-transfer

A PHP class to transfer data using sftp and ftp protocols.

0.1 2018-05-21 09:34 UTC

This package is not auto-updated.

Last update: 2024-04-17 19:08:08 UTC


README

Latest Version on Packagist Software License

Helper PHP objects to handle rsync, scp, and ssh-based file transfers.

rsync

The available switches for rsync currently mirror those available in rsync on CentOS 6.x.

The following switches are not yet implemented:

  • turning off options with the no- prefix
  • sending remote-only options with the remote- prefix

Full documentation can be found in the RsyncTransfer class.

<?php

use Trafficgate\Transferer\Transfer\RsyncTransfer;

$rsync = new RsyncTransfer();
$rsync
    ->source($source, $host = null, $user = null)
    ->destination($destination, $host = null, $user = null)
    ->transfer($idleTimeout = null);

scp

The available switches for ssh currently mirror those available in rsync on CentOS 6.x.

Full documentation can be found in the ScpTransfer class.

<?php

use Trafficgate\Transferer\Transfer\ScpTransfer;

$scp = new ScpTransfer();
$scp
    ->source($source, $host = null, $user = null)
    ->destination($destination, $host = null, $user = null)
    ->transfer($idleTimeout = null);

ssh

The SSH implementation is very primitive. It will most likely be transferred to a different package in the future as it doesn't completely align with the goals of this package.

It currently implements the following switches:

  • Enable quiet mode

    $ssh->quietMode($enabled = true)
  • Add a SSH configuration option

    $ssh->configOptions($value, $remove = false, $enabled = true)
  • The host to connect to. This should include username@ if it differs from the user executing the PHP script.

    $ssh->host($host)
  • The command to execute over SSH

    $ssh->remoteCommand($command)

The command has quiet mode enabled by default along with the following SSH options:

  • BatchMode yes
  • StrictHostKeyChecking no
  • UserKnownHostsFile /dev/null
<?php

use Trafficgate\Transferer\Ssh\SshCommand;

$ssh = new SshCommand();
$ssh
    ->host($host)
    ->remoteCommand($command);