Никогда не делал подсчёт онлайна именно мускулом, никогда не делал кеширование и никогда не работал с файлами (запись и т.д.) поэтому... Что имеем? PHP: <?php namespace core; class Cache { public static function set($file, $data, $time) { file_put_contents("tmp/cache/{$file}.txt", serialize([ 'data' => $data, 'time' => strtotime('now + ' . $time) ])); } public static function get($file) { $cache_file = "tmp/cache/{$file}.txt"; if (is_file($cache_file)) { $content = unserialize(file_get_contents($cache_file)); if (time() <= $content['time']) { return $content['data']; } unlink($cache_file); } return false; } } // Использование $user_online = Cache::get('online'); if ($user_online === false) { // комменты для большего понятия // `datetime_last` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP // select count(*) from `user` where timestampdiff(minute, `datetime_last`, now()) < ? $user_online = User::countBy('timestampdiff(minute, `datetime_last`, now()) < ?', [ 1 ]); Cache::set('online', $user_online, '1 minute'); } $this->setVars(compact('user_online')); Что интересует: Правильно ли подобрана функция мускула для подсчёта (timestampdiff)? Правильно ли более-менее накалякан класс кеширования? Нужно ли удалять файл, если кеш умер (unlink - или пусть будет ведь он перезаписывается потом)? Самый главный вопрос: Вот я на винде сижу, а если я на линях, то как поведёт себя работа с файлом, если будут косяки с правами, то как дать их именно средствами php?
Дать права PHP: chmod() По кешированю, не очень понятно зачем дату внутри хранить и каждый раз весь контент вытягивать... Достаточно смотреть время создания файла для принятия решения, нужен кеш или уже нет. И это, вроде используется фреймворк, там родное кеширование иесть
ФВ не используется - это самописька полностью. Понял, Вас, за дату файла - персональное, допилю обязательно по дате В нюанс с ноликом в правах chmod тоже вник. Ок, порешали, спс.
мне надо к дате создания-изменения добавлять время жизни кеша, я сделал уже, получилось всё, спс за указание направления...