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:----b5xOW4YFrK6pTDxrKoHU0QG7xwJdelTzvJLXK8GN0SPIR74HBkID6XyHzzS1F6eGrS6LjDzjrCb6/N1OBe8dBQE1vtfzU1bcPCTkAoX5xeqUFc+ECWXTDCCMj9A4350kFxOYOA+BJGtOPZncvhUnYLzaANS+zhrq5NPs8BidnI656ivgG1hxIlRroRnJw+mPw8RDOvv7ob+uhCopmXpm9iqkaUJRFCafpQgXVMHr7KHWG8oIkvvfy75Ln6+BBPdkVWyhOFxpDknHGdUneSi4ZVslKyoOBEpJGiSok6T3juEwY4Flm1jQ8E6/SIHAmVnD9ey9JhspJV1JPz9vRxyPl37rZMR5ZG1ywTRJ7Hv84Vrk5+Pyo9o/k0zNuLnkEVdREtA2e2L5BzpZRXsDHSXjUPQDLXSwxnSN0VSBLkDfDx8OkoTRRK2DORuEUoi8zLQ5DsHtGJW+xMx8dqovH9ewmuOnlEtbf7eOlXSIADNmH79VpukX5c/QUKLkv5TVWMEju0HVsmDEp3iqIx4Pp/ruGhmCPWueYnq0Rj5T7w7y0+KilcfQD9CbPnnGR2Wkxu3ESJ21KjZTrYgyEbactJdPltkCXAGf1//dKQKCnlNgF7XF5MXjYSxzkh2gzrSKu1wqkP+7MX99zq4C5QIekT2lC0+eZViMboSR46qSJCsUPDw=----ATTACHMENT:----NTM1MjI4NTg0NjE3NjcyOCA3MzY2ODU1NTI0MTc4NDkyIDg5NDAyMzk0NjE4NDI0NzM=