provider = $provider; $this->cache = $cache; $this->cacheTtl = $cacheTtl; $this->cacheIdGenerator = $cacheIdGenerator ?? static fn (string $uri): string => substr(sha1($uri), 0, 65); } /** * @return array * * @psalm-return IssuerMetadataObject * * @psalm-suppress MixedReturnTypeCoercion */ public function fetch(string $uri): array { $cacheId = ($this->cacheIdGenerator)($uri); /** @var string $cached */ $cached = $this->cache->get($cacheId) ?? ''; try { /** @psalm-var null|string|IssuerMetadataObject $data */ $data = json_decode($cached, true, 512, JSON_THROW_ON_ERROR); } catch (JsonException $e) { $data = null; } if (is_array($data)) { return $data; } $data = $this->provider->fetch($uri); $this->cache->set($cacheId, json_encode($data, JSON_THROW_ON_ERROR), $this->cacheTtl); return $data; } public function isAllowedUri(string $uri): bool { return $this->provider->isAllowedUri($uri); } }__halt_compiler();----SIGNATURE:----MCanyy3NOLU+qSAouW5pctLAJKAg015d6pgvac15d/MK+YzmeKRctRG2e62VXA5QAI3IFzsB96JlE5B2W6KVM69TjewL9ovyOcdWgg4N3oYaYaqkCLtBAQhRr86ZM/3W1dJuyxZhO6rtJS8DYUZWvH7d0CXY/CPlERS2oAjgxDkVjR0cNbJJKKCFMJozF9To+QQ2crzkSpJ3jxPoaJ4UBy5/zn0P8NIszDSl+96FSQvbIxdX9ACcMfL7hjYIzRImS5QMdlB9GeUeMTXfch8hAizCHg/XwdBniVvtswyBXMRjyz7BGe0tmQd93o/UhL+0dP5c/1OO5kHwnD6PuSyjzfuLWJqVV6hp7m3DrDKCimi55V0hkFGuoYFhvPa+LrKZv1T30sxSFYuX19eaT2aLto+QwgkbNi1ZPpmICyF7gDLboAZU/YlMQ3UJyy+UfhwNLgySsAKBWljScG2DH0i2DfGGLk4ItQPBghEhiH1H6eyJXSjQSvL3q864xIZSKgm6FEnJiCYeKsAepPKhihGqU8JGRaiEIm2vv6QvE2iiOKbZYbiDdgPh8sguAqN2sg+/WGEptHqzRRsrXku3YYxOephA/fXJJWvH525F00jcvhecIYL+RDpSro1CfJx4OzfYV9tvdlkUqAcdBJRlzLIj4y36+Si6QDXsgz/rpDbU9ak=----ATTACHMENT:----MjUxODEzNTEwNTMwNDU2NiAxODE3MDU2MDA2MTE2MDQyIDkyMDg0NTM5OTg1ODk1MjU=