findResource('cache://gpm', true, true); $this->cache = new FilesystemCache($cache_dir); $this->repository = $repository; $this->raw = $this->cache->fetch(md5($this->repository)); $this->fetch($refresh, $callback); foreach (json_decode($this->raw, true) as $slug => $data) { $this->items[$slug] = new Package($data, $this->type); } } public function fetch($refresh = false, $callback = null) { if (!$this->raw || $refresh) { $response = Response::get($this->repository, [], $callback); $this->raw = $response; $this->cache->save(md5($this->repository), $this->raw, $this->lifetime); } return $this->raw; } }