Как установить срок действия файла кэша?

Мне интересно, как системы кэширования, такие как doctrine-cache или zend-cache, устанавливают срок действия файлов кэша, если эти файлы не находятся в папке / tmp. Как можно установить срок действия файлов кэша? Если я хочу использовать свою собственную файловую систему кеша с php, а не использовать doctrine или zend, как я могу установить срок действия для него, если я не хочу помещать его в папку / tmp?

1

Решение

Кеш довольно прост. Допустим, у вас есть каталог cache,
Вы устанавливаете время истечения для файлов, которые находятся под переменной $expire

Таким образом, алгоритм

$file = "cache/cached.jpg";
$expire = 60 * 3600;

if (filectime($file) > time() + $expire)
{
// reload file and invalidate cache
} else if (file_exists($file){
// get from cache
} else {
// get file and save it to cache then return
}

но лучше использовать такие кеши, как http-кеш и т. д. с заголовком expire, лаком и т. д.

2

Другие решения

Я бы порекомендовал использовать кеш сервис как Memcached. Eсть третий параметр к задавать функция, которая означает количество секунд, после которых значение истечет.

1