Connect Manager

SshConnection implements ConnectionInterface

FinalYes

Прикладное SSH/SFTP соединение (нативная сессия) в контракте ConnectionInterface.

Tags
SuppressWarnings

("PHPMD.TooManyPublicMethods")

Table of Contents

Interfaces

ConnectionInterface
Единый объект сетевого соединения любого протокола.

Methods

__construct()  : mixed
Оборачивает нативную SSH-сессию в ConnectionInterface.
close()  : void
Закрывает соединение и освобождает ресурс.
exec()  : string
Выполняет удалённую команду и возвращает stdout (и накопленный stderr канала).
isOpen()  : bool
Проверяет, открыто ли соединение.
metadata()  : array<string, mixed>
Возвращает метаданные соединения (transport, tls, peer и т.п.).
osiLayer()  : int
Возвращает слой OSI (1–7) или 0 для внемодельных (socket и т.п.).
protocol()  : string
Возвращает идентификатор протокола (нижний регистр).
read()  : string
Читает до $length байт.
readChunks()  : Generator<mixed, void>
Читает поток чанками (генератор для экономии памяти).
remoteEndpoint()  : string|null
Возвращает удалённый endpoint (host:port, unix-path и т.п.) либо null.
resource()  : SshSessionInterface
Возвращает низкоуровневый stream-ресурс или null.
sftp()  : SftpClient
Открывает прикладной SFTP-клиент поверх той же сессии.
write()  : int
Записывает данные в соединение.

Methods

__construct()

Оборачивает нативную SSH-сессию в ConnectionInterface.

public __construct(SshSessionInterface $session, string $protocol, string|null $remoteEndpoint[, array<string, mixed> $metadata = [] ]) : mixed
Parameters
$session : SshSessionInterface

Аутентифицированная сессия

$protocol : string

Идентификатор протокола («ssh» или «sftp»)

$remoteEndpoint : string|null

Исходный endpoint пользователя (host:port)

$metadata : array<string, mixed> = []

Служебные метаданные (engine, pinned_ips, …)

close()

Закрывает соединение и освобождает ресурс.

public close() : void

Отправляет DISCONNECT и помечает соединение закрытым.

Attributes
#[Override]

exec()

Выполняет удалённую команду и возвращает stdout (и накопленный stderr канала).

public exec(string $command) : string
Parameters
$command : string

Команда для channel request «exec»

Tags
throws
ConnectionException

Если соединение закрыто или протокол упал

Return values
string —

Вывод команды

isOpen()

Проверяет, открыто ли соединение.

public isOpen() : bool
Attributes
#[Override]
Return values
bool —

true, пока не вызван close() и сессия isConnected()

metadata()

Возвращает метаданные соединения (transport, tls, peer и т.п.).

public metadata() : array<string, mixed>
Attributes
#[Override]
Return values
array<string, mixed> —

Копия метаданных конструктора

osiLayer()

Возвращает слой OSI (1–7) или 0 для внемодельных (socket и т.п.).

public osiLayer() : int
Attributes
#[Override]
Return values
int —

Всегда 7 (прикладной уровень OSI)

protocol()

Возвращает идентификатор протокола (нижний регистр).

public protocol() : string
Attributes
#[Override]
Return values
string —

Идентификатор протокола («ssh» / «sftp»)

read()

Читает до $length байт.

public read(int $length) : string
Parameters
$length : int

Максимум байт за чтение

Tags
throws
ConnectionException

Если соединение закрыто

Attributes
#[Override]
Return values
string —

Прочитанный фрагмент или ''

readChunks()

Читает поток чанками (генератор для экономии памяти).

public readChunks([int $chunkSize = 8192 ]) : Generator<mixed, void>
Parameters
$chunkSize : int = 8192

Размер порции для одного yield

Tags
throws
ConnectionException

Если соединение закрыто

Attributes
#[Override]
Return values
Generator<mixed, void> —

Не более одного чанка за итерацию

remoteEndpoint()

Возвращает удалённый endpoint (host:port, unix-path и т.п.) либо null.

public remoteEndpoint() : string|null
Attributes
#[Override]
Return values
string|null —

Endpoint из конструктора или null

sftp()

Открывает прикладной SFTP-клиент поверх той же сессии.

public sftp() : SftpClient
Tags
throws
ConnectionException

Если соединение закрыто или subsystem не поднялся

Return values
SftpClient —

Клиент get/put/list/mkdir/delete

write()

Записывает данные в соединение.

public write(string $payload) : int
Parameters
$payload : string

Байты в session-канал

Tags
throws
ConnectionException

Если соединение закрыто

Attributes
#[Override]
Return values
int —

Число записанных байт (strlen payload)

On this page

Search results