class Client extends Client

SFTP-Client

$host = 'example.com';
$user = new \Alvine\Security\Authentication\User('root');
$credential = new \Alvine\Security\Authentication\Credential\Password('geheim');

$config = new \Alvine\Infrastructure\Linux\SSH\Configuration();

$connection = new \Alvine\Infrastructure\Linux\SSH\SFTP\Client($host, $user, $credential, 22, $config);

$status = $connection->getStatus(new \Alvine\IO\File\File('/tmp/example.txt'));
// Enthält Status-Objekt

echo (string) $status->getPermissions();

$list = $connection->getDirectoryList(new \Alvine\IO\File\Directory('/etc'));
// Liefert Collection zurück
echo \implode("\r\n", \explode(',', (string) $list));

// Datei umbenennen
$connection->rename(new \Alvine\IO\File\File('/tmp/example.txt'), new \Alvine\IO\File\File('/tmp/example.txt.backup'));

Constants

LENGTH

Buffer Größe

Properties

protected Configuration $config from Client
protected resource $session from Client
protected string $host from Client
protected integer $port from Client
protected User $user from Client
protected Credential $credential from Client
protected string $fingerprint from Client
protected resource $sftp

Methods

__construct(string $host, User $user, Credential $credential, integer $port = 22, Configuration $config = null)

Die Verbindung zum Server besteht über die gesamte Lebenszeit des Objektes. Die Verbindung kann jedoch auch vorzeitig durch die Methode Client::disconnect() geschlossen werden. In diesem Fall wird beim ausführen von Befehlen eine Exception geworfen.

__destruct()

Verbindung beenden

from Client
doAuthentification()

Anmeldung durchführen

from Client
string
getFingerprint()

Fingerabdruck des Servers

from Client
Result
execute(string $command)

Anweisungen ausführen

from Client
string
getError(resource $stream)

Resource

from Client
disconnect()

Verbindung beenden

from Client
sendFile(File $localFile, string $remoteFile, integer $mode = 0660)

Lokale Datei übertragen

send(string $data, string $remoteFile, integer $mode = 0660)

Daten übertragen

from Client
receiveFile(string $remoteFile, File $localFile)

Datei übertragen

string
receive(string $remoteFile)

Daten empfangen

from Client
changePermissions(File $file, integer $mode)

chmod

delete(File|Directory $path)

Datei oder Verzeichnis löschen

createDirectory(Directory $directory, integer $mode)

Verzeichnis erstellen

rename(File $from, File $to)

Datei oder Verzeichnis umbenennen

File
getLinkedFileName(string $link)

Link auslesen

File
getRealpath(File $file)

Realpath

getLinkStatus(File $file)

Sammelt Daten über ein symbolic Link

getStatus(File $file)

Sammelt Daten über ein symbolic Link

createLink(File $file, File $link)

Symlink erstellen

Collection
getDirectoryList(Directory $directory, Closure $filter = null)

Verzeichnis einlesen

Details

at line 87
__construct(string $host, User $user, Credential $credential, integer $port = 22, Configuration $config = null)

Die Verbindung zum Server besteht über die gesamte Lebenszeit des Objektes. Die Verbindung kann jedoch auch vorzeitig durch die Methode Client::disconnect() geschlossen werden. In diesem Fall wird beim ausführen von Befehlen eine Exception geworfen.

Parameters

string $host Server
User $user Benutzer
Credential $credential Zugangsdaten
integer $port Port
Configuration $config Konfiguration

Exceptions

ConnectionFailedException

in Client at line 153
__destruct()

Verbindung beenden

in Client at line 168
protected Client doAuthentification()

Anmeldung durchführen

Return Value

Client

Exceptions

AuthenticationException
UnsupportedAuthenticationException

in Client at line 202
string getFingerprint()

Fingerabdruck des Servers

Zeichenkette in der Form SSH2_FINGERPRINT_MD5|SSH2_FINGERPRINT_HEX

Return Value

string

in Client at line 215
Result execute(string $command)

Anweisungen ausführen

Parameters

string $command Befehl

Return Value

Result Ausgabe des Befehls

Exceptions

ConnectionFailedException Verbindungsfehler

in Client at line 244
protected string getError(resource $stream)

Resource

Parameters

resource $stream Stream

Return Value

string Fehler

in Client at line 255
Client disconnect()

Verbindung beenden

Return Value

Client

at line 309
Client sendFile(File $localFile, string $remoteFile, integer $mode = 0660)

Lokale Datei übertragen

Parameters

File $localFile Lokale Datei
string $remoteFile Entfernte Datei
integer $mode Rechte

Return Value

Client

Exceptions

ConnectionFailedException
TransferException

in Client at line 308
Client send(string $data, string $remoteFile, integer $mode = 0660)

Daten übertragen

Eine zeichenkette übertragen und auf dem Zielsystem unter dem Namen $remoteFile abspeichern. Eine vorhandene Datei wird dabei überschrieben. Die Rechte der Datei können über $mode gesetzt werden.

$connection->send('hello world', '/tmp/hallo.txt');

Parameters

string $data Dateiinhalt
string $remoteFile Zieldatei
integer $mode Rechte

Return Value

Client

Exceptions

ConnectionFailedException

at line 346
Client receiveFile(string $remoteFile, File $localFile)

Datei übertragen

Daten aus entfernter Datei in eine lokale Datei übertragen.

Parameters

string $remoteFile entfernte Datei
File $localFile lokale Datei

Return Value

Client

Exceptions

ConnectionFailedException

in Client at line 364
string receive(string $remoteFile)

Daten empfangen

Daten aus entfernter Datei auslesen und den Inhalt als Zeichenkette zurückgeben. Bei der verarbeitung wird die empfangene Datei in eine temporäre Datei gespeichert.

// Daten empfangen und ausgeben echo $connection->receive('/tmp/hallo.txt');

Parameters

string $remoteFile entfernte Datei

Return Value

string Inhalt

Exceptions

ConnectionFailedException

at line 109
Client changePermissions(File $file, integer $mode)

chmod

Parameters

File $file
integer $mode

Return Value

Client

Exceptions

ConnectionFailedException
CommandException

at line 130
Client delete(File|Directory $path)

Datei oder Verzeichnis löschen

Parameters

File|Directory $path

Return Value

Client

Exceptions

ConnectionFailedException
CommandException

at line 163
Client createDirectory(Directory $directory, integer $mode)

Verzeichnis erstellen

Parameters

Directory $directory
integer $mode

Return Value

Client

Exceptions

ConnectionFailedException
CommandException

at line 184
Client rename(File $from, File $to)

Datei oder Verzeichnis umbenennen

Parameters

File $from
File $to

Return Value

Client

Exceptions

ConnectionFailedException
CommandException

at line 204
File getLinkedFileName(string $link)

Link auslesen

Parameters

string $link

Return Value

File

Exceptions

ConnectionFailedException
CommandException

at line 225
File getRealpath(File $file)

Realpath

Parameters

File $file

Return Value

File

Exceptions

ConnectionFailedException
CommandException

at line 246
FileStatus getLinkStatus(File $file)

Sammelt Daten über ein symbolic Link

Parameters

File $file

Return Value

FileStatus

Exceptions

ConnectionFailedException
CommandException

at line 267
FileStatus getStatus(File $file)

Sammelt Daten über ein symbolic Link

Parameters

File $file

Return Value

FileStatus

Exceptions

ConnectionFailedException
CommandException

Symlink erstellen

Parameters

File $file
File $link

Return Value

Client

Exceptions

ConnectionFailedException
CommandException

at line 390
Collection getDirectoryList(Directory $directory, Closure $filter = null)

Verzeichnis einlesen

Der optionale Filter erlaubt es bestimmte Dateien aus dem Ergebnis auszuschließen. Die Callback-Funktion muss true für akzeptierte Dateien und false für auszuschliessende Dateien zurückgebeben.

// Verzeichnisliste mit Filterung
$list =  $connection->getDirectoryList(new \Alvine\IO\File\Directory('/tmp/'), function($path, $directory){

         if($path==='.') return false;
         if($path==='..') return false;
         return true;
});

Parameters

Directory $directory
Closure $filter

Return Value

Collection

Exceptions

TransferException