Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
20
Внедрение кеширования результата отчёта
Условие задачи
В имеющемся коде реализовано формирование отчёта согласно заданной спецификации. Требуется добавить кэширование получаемого отчёта сроком в 10 минут, используя интерфейс кеша из стандарта PSR‑16 (https://www.php-fig.org/psr/psr-16/#21-cacheinterface).
namespace MyApplication;
final readonly class ReportSpecification
{
// какие‑то свойства, определяющие содержание отчёта
}
final readonly class Report
{
// какие‑то свойства с данными отчёта
}
interface Analyst
{
public function generateReport(ReportSpecification $criteria): Report;
}
final class PostgresAnalyst implements Analyst
{
public function generateReport(ReportSpecification $criteria): Report
{
// тяжёлые запросы с join‑ами и агрегациями
return new Report(/* данные отчёта */);
}
}