trafficgate / transferer
PHP objects for handling file transfers.
Requires
- php: ^8.0
- illuminate/console: 8.*|9.*|10.*
- illuminate/support: 8.*|9.*|10.*
- trafficgate/shell-command: ~3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ~3.0
- ocramius/package-versions: ^2.0
- orchestra/testbench: ~6.0|~7.0|~8.0
- phpunit/phpunit: ~9.0|~10.0
- symfony/process: ~5.0|~6.0
README
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);