PHP · SYMFONY CACHE 7.4.23 · 9 ОПЫТОВ
Когда читать кеш,
а когда обновлять?
Поменяйте цену в источнике, проследите TTL и инвалидируйте связанные записи. Затем сравните модель с настоящими результатами PHP.
Скачать исходникиДва разных режима: сверху интерактивная учебная модель в JavaScript; ниже запись девяти реальных PHP-прогонов. Браузер не запускает Symfony Cache, не пишет на сервер и не подключается к базе.
1. Поиграйте с жизнью записи
Прочитайте товар дважды. Затем измените цену источника: до истечения TTL или удаления ключа чтение вернёт старую цену. Выберите другой namespace, чтобы увидеть отдельный кеш.
Время виртуальное: ожидание в реальном мире здесь ничего не меняет. TTL применяется при следующем MISS; изменение списка TTL не продлевает уже созданные записи. Категория относится к текущему namespace. Удаление ключа в модели не затрагивает ваши файлы.
Что сейчас хранится
Журнал действий модели
2. Девять настоящих опытов PHP
Эти результаты записаны запуском исходного проекта с FilesystemAdapter и TagAwareAdapter. В TTL-опыте PHP действительно ждал 2 секунды. Числа ниже показывают вызовы callback и состояния, а не замер скорости сервера.
Код подхода и проверенные результаты
Это фрагмент для объяснения приёма. Функции loadProduct(), API и repository в нём обозначают ваш источник данных. Полный исполняемый опыт — в Laboratory.php из архива.
3. Запустите настоящее кеширование
Распакуйте проект. Нужны PHP 8.2+ и Composer. Карточка товара читает учебный JSON и сохраняет кеш только в runtime/application-cache этого проекта. Повторный запуск покажет sourceLoaded: false. Измените fixtures/catalog.json и сравните чтение до и после --invalidate.
Для просмотра мастерской: php -S 127.0.0.1:8174 -t public. Это локальный сервер статики. Команды CLI запускаются отдельно; на сайте PHP-обработчика записи нет. Полные инструкции VPS, права и prune находятся в README.