getPath()) { case '/plaintext': return new HelloTextResource; case '/json': return new HelloJsonResource; case '/db': return new DbResource($this->database); case '/queries': return new QueriesResource($this->database); case '/cached-worlds': return new CachedQueriesResource($this->getCache($request), $this->database); case '/fortunes': return new FortuneResource($this->database); case '/update': return new UpdateResource($this->database); } return new NotFoundResource; } protected function getCache(Request $request): CacheItemPoolInterface { if (!$this->cache) { $this->cache = new ApcuCachePool; } return $this->cache; } }