flysystem-offload/vendor/league/flysystem-sftp-v3/SimpleConnectivityChecker.php

47 lines
911 B
PHP

<?php
declare(strict_types=1);
namespace League\Flysystem\PhpseclibV3;
use phpseclib3\Net\SFTP;
use Throwable;
class SimpleConnectivityChecker implements ConnectivityChecker
{
public function __construct(
private bool $usePing = false,
) {
}
public static function create(): SimpleConnectivityChecker
{
return new SimpleConnectivityChecker();
}
public function withUsingPing(bool $usePing): SimpleConnectivityChecker
{
$clone = clone $this;
$clone->usePing = $usePing;
return $clone;
}
public function isConnected(SFTP $connection): bool
{
if ( ! $connection->isConnected()) {
return false;
}
if ( ! $this->usePing) {
return true;
}
try {
return $connection->ping();
} catch (Throwable) {
return false;
}
}
}