1.0.0 Alpha Release #59

Merged
netkas merged 213 commits from v1.0.0_alpha into master 2023-01-29 23:27:58 +00:00
Showing only changes of commit 259620079e - Show all commits

View file

@ -6,6 +6,7 @@
use ncc\Exceptions\HttpException;
use ncc\Objects\HttpRequest;
use ncc\Objects\HttpResponse;
use ncc\Objects\HttpResponseCache;
class HttpClient
{
@ -13,11 +14,22 @@
* Creates a new HTTP request and returns the response.
*
* @param HttpRequest $httpRequest
* @param bool $cache
* @return HttpResponse
* @throws HttpException
*/
public static function request(HttpRequest $httpRequest): HttpResponse
public static function request(HttpRequest $httpRequest, bool $cache=false): HttpResponse
{
if($cache)
{
/** @var HttpResponseCache $cache */
$cache = RuntimeCache::get(sprintf('http_cache_%s', $httpRequest->requestHash()));
if($cache !== null && $cache->getTtl() > time())
{
return $cache->getHttpResponse();
}
}
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $httpRequest->Url);
@ -100,6 +112,12 @@
curl_close($curl);
if($cache)
{
$httpCacheObject = new HttpResponseCache($httpResponse, 60);
RuntimeCache::set(sprintf('http_cache_%s', $httpRequest->requestHash()), $httpCacheObject);
}
return $httpResponse;
}