cfmgrv4/app/Libraries/MySocket/CloudflareSocket.php
2024-10-08 15:11:33 +09:00

38 lines
1.1 KiB
PHP

<?php
namespace App\Libraries\MySocket;
use Psr\Http\Message\ResponseInterface;
use App\Entities\Cloudflare\AuthEntity;
class CloudflareSocket extends MySocket
{
private static int $_request = 0;
private static int $_request_max = 1000;
public static int $_request_perpage_max = 700;
private static int $_request_timewait = 60;
public function __construct(AuthEntity $auth_entity)
{
parent::__construct([
'base_uri' => 'https://api.cloudflare.com/client/v4/',
'headers' => [
'X-Auth-Email' => $auth_entity->getID(),
'X-Auth-Key' => $auth_entity->getAuthKey(),
'Content-Type' => 'application/json',
]
]);
}
final public function request(string $method, $uri = '', array $options = []): ResponseInterface
{
if (self::$_request >= self::$_request_max) {
log_message('warning', sprintf("--Cloudflare API Call %s초 대기 시작--", self::$_request_timewait));
sleep(intval(self::$_request_timewait));
self::$_request = 0;
log_message('warning', sprintf("--Cloudflare API Call %s초 대기 종료--", self::$_request_timewait));
}
self::$_request++;
return parent::request($method, $uri, $options);
}
}