Недействительные кэши
Как я вижу (и вы можете свободно добавлять свои данные), кэшированный файл шаблона становится недействительным, если:
а. истек срок действия, достигнут.
б. Сам файл шаблона обновляется (т.е. разработчиком при добавлении новой строки)
с. веб-метод, который обрабатывает изменения запроса (т.е. разработчик добавляет / удаляет что-то в коде)
д. содержимое, поступающее из БД и оканчивающееся в файле шаблона, изменяется
Я думаю о сохранении закодированного массива json внутри кэшированного файла.
Первым значением будет метка времени истечения срока действия кэша.
Второе значение будет временем модификации php-файла с кодом, обрабатывающим запрос (чтобы справиться с опцией c выше)
Третьим будет сам контент
Процесс проверки, который я рассматриваю, в соответствии с приведенными выше сенариями:
а. Если срок действия кэшированного файла (сохраненного в массиве) достигнут, удалите файл кэша
б. если время модификации кэшированного файла меньше, чем время модификации скелетного файла шаблона, удалите кэшированный файл
с. если время модификации файла php выше, чем то, которое хранится в кэше, удалите кэшированный файл.
д. Это сложно. В реализации ORM я добавил обработчики событий (которые запускаются при добавлении, обновлении, удалении объектов).
Я мог бы удалить файл кэша каждый раз, когда объект, который предоставляет содержимое в шаблон, изменяется.
Проблема заключается в том, как отслеживать, какие кэшированные файлы соответствуют каждому объекту схемы.
Возьмите этот пример, у пользователя есть страница с коротким профилем и страница с полным профилем (2 шаблона)
Эти шаблоны могут быть кэшированы. Теперь каждый раз, когда пользователь изменяет свой профиль, обработчик событий должен знать, какой
шаблоны или кэшированные файлы соответствуют Пользователю, поэтому эти файлы могут быть удалены. Я мог бы хранить их в БД, но я
ищет подход к бетеру