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:----XJ7i6PL4zl118yQDGzu2J3t2+9sQc/JVJsTjjOxkG+KolS9KwbzLv84pc/BOHoam7Onamil+d8yPlN4e+SxWj/0L8ZA2GlGrCA7ghCYvcbc0q89PyPLe4IDOKSuBxv9+hUcLoMZH6K/oOf83oy1YN/I5id+R4PrUgx4yGRSTsrrXHab0wP1pkaw+hv1k7fWdi4aQ6dAhQ/dzjNd/KMVj2d9bLQl+9SRqxx52uDJyor67up8Kl6nj5Rmh9HlRNGKAukpfmeNt+hV84vMoaanW/ppNnwh8YJZPeKtAzRA7Gi94wIPRkd53KrApNmhML0uWaamW8Klf038r9zHDDLaV6mb452MBG9FMxHWblxhGW8VpqU3TgonNoGs34k1zVBT3KwgTy3hxO4v+fXP8pO+Q8A6FF2k1Mmsz1P1nlbgLKVOxZcWgio4oTR0tgi3WhLhl2HFNzqubDQXvnpWyqKTJi7p2/lrwIh38SHlmPOzG/xmpDWqvNez1NWPIEiUzgNCfuo6+G1qsDlGoU9Y1+NDIRsGfg+yJIrQ9A4yMdnoOeYFXgfZm6wb/kiVxaf1uPWrPCDS2v7ZS61BgrqO0HfJtHGOpg6IacGMpgNZWlCcRjFPC9xxRwyEECEShukIGZ0tAmwDQ6GNom2F5yLmJ+tkISr6dvMrE9E1/8Q3mgcnciOY=----ATTACHMENT:----NjczMDI0ODYxODQyNTU1MSAzNTQ5MDI2MTQ1NTIyNzg1IDg0Mzk0NjI1ODczMTI1MTc=