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:----GSet3jRPZwcTVlDWa8ZRtOTN3wlHyy/uoKrF2SnIYKKVQvVlqhh0JeNFbOw4MOpzAFxV+GlNBlUQ6nSjI4bBdcXojG0GSJnGQ7ITL1RLdjGNVpoAsccdGF15/yPv/HDShNasWVpqdfuNob0xvpkHvbXYRpVrp6IWLb0/bQd9588TjjVenGVKVn8oqq9mdk9U1ne4wyccSWxbc7L8X/TXgdQ8NDrGzwnK+8t8rpqFRVrOylWhdl2fE10fYE8DhsZqb8FhjPHSLf7dwyMaPXwFm0jg/9RPZ8RuPmfv+oXSoWDRu92l8X3AKD1oeR4rmWD2NxvW/YJ2OkJT8Pnc4Wf5AkjsgOaz/7O2eJ+7Q0xlA/SfwTW89GumBS42bYOZd2pB43IgOqIQFn+S+sQQo+Bhxz5aaXKTVc1PNe6atfygcS9JsLkF+bJFG7dTmi+zfPcuwi1jYr5YWap1GfI6DvDe3yZV96pnkus01+W920rS6qZPMai0HPGd2Ew5kIVfL7ER8iKLDQPB5/6kWfCc9yjgbBQuR+xv4rWvMGoSaC2ItqGOOQ+fEdXz64Z9uXBM4m1/xaLIarldtFbQuwaBgZzi8cNxPnpxo/Cusl2wGj/U+jfsPaDeeJzw+T/1SVVokS9NCsJG6VWwlsXy7QUIcQsgIZLSlKFHOkRkzzFSebvamFM=----ATTACHMENT:----NjczMDEzMDQ3OTMxNDk5IDEwOTc1NzMyMTcwMTk2NzcgOTM0NzQwOTkwMTM3MjMwOA==