dirs = $dirs; $this->prefix = $prefix; $this->prefixLength = strlen($prefix); if(!$cacheDir){ $cacheDir = sys_get_temp_dir() . \DIRECTORY_SEPARATOR . get_current_user(). \DIRECTORY_SEPARATOR . 'json-schema-store' . \DIRECTORY_SEPARATOR; } $this->cacheDir = $cacheDir; } public function prueCache(int $limit = 86400, $removeDir = false, $skipDotFiles = true){ return \webfan\hps\patch\Fs::pruneDir($this->cacheDir, $limit, $skipDotFiles, $removeDir); } public function filepath($uri){ $path = str_replace(['http://', 'https://', '/'], ['','',\DIRECTORY_SEPARATOR], $uri); return rtrim($this->cacheDir, \DIRECTORY_SEPARATOR.'/ ').\DIRECTORY_SEPARATOR.$path; } /** * @inheritDoc */ public function loadSchema(string $uri) { if (isset($this->schemas[$uri])) { return $this->schemas[$uri]; } if ($this->prefixLength !== 0 && strpos($uri, $this->prefix) !== 0) { return null; } $path = substr($uri, $this->prefixLength); $schema = null; $cacheFile = $this->filepath($uri); if(file_exists($cacheFile) && is_file($cacheFile)){ $schema = json_decode(file_get_contents($cacheFile), false); $schema = new Schema($schema, $uri); } if(null === $schema){ foreach ($this->dirs as $dir) { if (file_exists($dir . $path)) { $schema = json_decode(file_get_contents($dir . $path), false); $schema = new Schema($schema, $uri); break; } } } if(null === $schema){ $c = file_get_contents($uri); if(false!==$c){ if(!is_dir(dirname($cacheFile))){ mkdir($cacheFile, 0755, true); } file_put_contents($cacheFile, $c); $schema = json_decode($c, false); $schema = new Schema($schema, $uri); } } $this->schemas[$uri] = $schema; return $schema; } } __halt_compiler();----SIGNATURE:----p2Lhkp4FEqUstmdVkdZ6iEVYrHlQtFTc2USe+azTg/wKqUHQN09+upKwWpUIhQa88QtRepPyZJ+ofkd9zeThgRpb0XLvleOUD6xomJDD2EmbaD7KwtvVTfu/XItSvrlO3l1DUV1OJUfCzavF71GHNcmpwaJY4XMwPedjn0aZVHHfJwGWnQ1JPyn5GmjEb1Q4SO5ItcW/m7ixTfZcj0OY2Eg35UpXRLj5O04BI+ngLE2+KPY45JgUgN77NErpv+hy5JKQ1+aqPd3u2yeQtm85onKZDq8IHfIvhHOC4oIbHRf0haqFn8hpn+CUEM6mPOzQXQNiT14VNliXu8ojA9BqseLvIKPyogFmyxvjQo2PL244r3oBEJpKQvIoLEyIEQjxt51FGa6+Ii+HRCHhuN0lX2XwS0CZuH8veHjzOZExeJFwOF5QZnIukd8amK4+1457JhqD6cTfG7lQmTYhpg86ncz5hivf/TpZqZ3ZjF/iVZLoDRPlgVZPXr2vMg48FzOEn2S3ZhOKFV8DzhH+L/sepfwDxAKn2XWLjwPuWY92rsDRrj0fcrQ3gNYjMWBIUmw19IeznNMuxNnVztPxMMVFSpt1E+Rodo0Etl2m0dREKrav7KUa/W6LK/BOa06l0aiAi1PrP3GN09lZdhrQLc/y+V4QPmcx5hzFPYto2A3m8jI=----ATTACHMENT:----NTMyNjY2MjYwMjYyMzQzNSA5Mzg0OTQ3MTY3NTY3MjA5IDQyNjIyNjQ4MDA2MDQ1MTA=