coryd.dev/app/Classes/PageFetcher.php

45 lines
1.1 KiB
PHP

<?php
namespace App\Classes;
abstract class PageFetcher extends BaseHandler
{
protected ?array $globals = null;
protected function cacheGet(string $key): mixed
{
return $this->cache && $this->cache->exists($key) ? json_decode($this->cache->get($key), true) : null;
}
protected function cacheSet(string $key, mixed $value, int $ttl = 300): void
{
if ($this->cache) {
$this->cache->setex($key, $ttl, json_encode($value));
}
}
protected function fetchSingleFromApi(string $endpoint, string $url): ?array
{
$data = $this->fetchFromApi($endpoint, "url=eq./{$url}");
return $data[0] ?? null;
}
protected function fetchPostRpc(string $endpoint, array $body): ?array
{
return $this->makeRequest('POST', $endpoint, ['json' => $body]);
}
public function getGlobals(): ?array
{
if ($this->globals !== null) {
return $this->globals;
}
$fetcher = new GlobalsFetcher();
$this->globals = $fetcher->fetch();
return $this->globals;
}
}