Files
YeePay/lib/Http/ClientConfiguration.php
2024-04-01 09:54:43 +08:00

201 lines
4.0 KiB
PHP

<?php
namespace Yeepay\Yop\Sdk\Http;
use Yeepay\Yop\Sdk\Utils\Http\Region;
use Yeepay\Yop\Sdk\Utils\YopConstants;
class ClientConfiguration
{
const DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS = 50000;
const DEFAULT_SOCKET_TIMEOUT_IN_MILLIS = 50000;
private static $defaultUserAgent;
private static $defaultRegion = Region::CN_N1;
/**
* ClientConfiguration constructor.
* @param int $connectionTimeoutInMillis
* @param int $socketTimeoutInMillis
* @param null $userAgent
* @param null $proxyUrl
*/
public function __construct(
$connectionTimeoutInMillis = self::DEFAULT_CONNECTION_TIMEOUT_IN_MILLIS,
$socketTimeoutInMillis = self::DEFAULT_SOCKET_TIMEOUT_IN_MILLIS,
$userAgent = null,
$region = null,
$proxyUrl = null
) {
$this->connectionTimeoutInMillis = $connectionTimeoutInMillis;
$this->socketTimeoutInMillis = $socketTimeoutInMillis;
$this->userAgent = isset($userAgent) ? $userAgent : self::$defaultUserAgent;
$this->region = isset($region) ? $region : self::$defaultRegion;
$this->proxyUrl = $proxyUrl;
}
public static function __init()
{
self::$defaultUserAgent = YopConstants::LANG.'/'.YopConstants::VERSION.'/'.php_uname('s').'/'.php_uname('r').'/m/m/'.phpversion();
}
/**
* @var string
*/
private $userAgent;
/**
* @var string
*/
private $proxyUrl;
/**
* @var float
*/
private $connectionTimeoutInMillis;
/**
* @var float
*/
private $socketTimeoutInMillis;
/**
* @var string
*/
private $region;
/**
* @return mixed
*/
public static function getDefaultUserAgent()
{
return self::$defaultUserAgent;
}
/**
* @param mixed $defaultUserAgent
*/
public static function setDefaultUserAgent($defaultUserAgent)
{
self::$defaultUserAgent = $defaultUserAgent;
}
/**
* @return string
*/
public static function getDefaultRegion()
{
return self::$defaultRegion;
}
/**
* @param string $defaultRegion
*/
public static function setDefaultRegion($defaultRegion)
{
self::$defaultRegion = $defaultRegion;
}
/**
* @return mixed
*/
public function getUserAgent()
{
return $this->userAgent;
}
/**
* @param mixed $userAgent
* @return ClientConfiguration
*/
public function setUserAgent($userAgent)
{
$this->userAgent = $userAgent;
return $this;
}
/**
* @return string
*/
public function getProxyUrl()
{
return $this->proxyUrl;
}
/**
* @param string $proxyUrl
* @return ClientConfiguration
*/
public function setProxyUrl($proxyUrl)
{
$this->proxyUrl = $proxyUrl;
return $this;
}
/**
* @return float
*/
public function getConnectionTimeoutInMillis()
{
return $this->connectionTimeoutInMillis;
}
/**
* @param float $connectionTimeoutInMillis
* @return ClientConfiguration
*/
public function setConnectionTimeoutInMillis($connectionTimeoutInMillis)
{
$this->connectionTimeoutInMillis = $connectionTimeoutInMillis;
return $this;
}
/**
* @return float
*/
public function getSocketTimeoutInMillis()
{
return $this->socketTimeoutInMillis;
}
/**
* @param float $socketTimeoutInMillis
* @return ClientConfiguration
*/
public function setSocketTimeoutInMillis($socketTimeoutInMillis)
{
$this->socketTimeoutInMillis = $socketTimeoutInMillis;
return $this;
}
/**
* @return string
*/
public function getRegion()
{
return $this->region;
}
/**
* @param string $region
* @return ClientConfiguration
*/
public function setRegion($region)
{
$this->region = $region;
return $this;
}
}
ClientConfiguration::__init();