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.

    Забрать проект, lock, тесты и инструкции