<?php /** * Ta荐的核心指标 */ Class TajianStats { //注册用户总数 static $total_user = 0; //收藏的视频总数 static $total_video = 0; //添加的分类总数 static $total_tag = 0; //上一次保存到缓存文件的时间 static $cache_save_time = 0; static $cache_filename = 'tajian_stats.json'; //初始化数据,优先从本地缓存文件恢复数据 public static function init() { $filepath = __DIR__ . '/../runtime/' . self::$cache_filename; try { if (file_exists($filepath)) { $json = file_get_contents($filepath); $stats = json_decode($json, true); self::$total_user = $stats['user']; self::$total_video = $stats['video']; self::$total_tag = $stats['tag']; self::$cache_save_time = $stats['cache_time']; } }catch(Exception $e) { //文件读取异常 } return self::get(); } //保存到本地文件,规则:距离上一次保存时间至少间隔10分钟 public static function save() { $saved = false; $filepath = __DIR__ . '/../runtime/' . self::$cache_filename; try { self::$cache_save_time = time(); //记录更新时间 $stats = self::get(); $saved = file_put_contents($filepath, json_encode($stats)); }catch(Exception $e) { //文件写入异常 } return $saved !== false; } //返回统计数据 public static function get() { return array( 'user' => self::$total_user, 'video' => self::$total_video, 'tag' => self::$total_tag, 'cache_time' => self::$cache_save_time, ); } public static function increase($data_type) { $total = 0; switch($data_type) { case 'user': self::$total_user ++; $total = self::$total_user; break; case 'video': self::$total_video ++; $total = self::$total_video; break; case 'tag': self::$total_tag ++; $total = self::$total_tag; break; } return $total; } public static function decrease($data_type) { $total = 0; switch($data_type) { case 'video': self::$total_video --; $total = self::$total_video; break; case 'tag': self::$total_tag --; $total = self::$total_tag; break; } return $total; } }