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