inner->save($evaluationId, $statistics); $this->cache->deleteItem($this->cacheKey($evaluationId)); } #[Override] public function findByEvaluation(EvaluationId $evaluationId): ?ClassStatistics { $key = $this->cacheKey($evaluationId); $item = $this->cache->getItem($key); if ($item->isHit()) { /** @var ClassStatistics|null $cached */ $cached = $item->get(); return $cached; } $stats = $this->inner->findByEvaluation($evaluationId); $item->set($stats); $this->cache->save($item); return $stats; } #[Override] public function delete(EvaluationId $evaluationId): void { $this->inner->delete($evaluationId); $this->cache->deleteItem($this->cacheKey($evaluationId)); } private function cacheKey(EvaluationId $evaluationId): string { return 'eval_stats_' . $evaluationId; } }