database = $database; } public function findResource(Request $request): HttpResource { switch ($request->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 '/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 ArrayCachePool(); } return $this->cache; } }