/** * 保存缓存 * 如果页面内容小于1KB,则不被缓存即使满足缓存条件 * @param string $html * @param int $len 文件最小存储限制 */ public function save($html, $len = 1024) { if ($this->is_allow_cache() && mb_strlen($html, 'UTF-8') > $len) { $file = $this->cache_file_path(); $html = FileStatic::cleanHtmlblank($html); $es = PHP_EOL . "<!--[[" . ES_POWER . ' ' . ES_AUTHOR . ' ' . TimeStatic::formatTime() . ' ' . $this->cache_file_rule() . time() . "]]-->"; // 该值用以判断是否过期 file_put_contents($file, $html . $es); } }
/** * 产生一条日志 * 占位符使用'{}' * {@inheritDoc} * @see \es\libraries\Psr\Log\LoggerInterface::log() */ public function log($level, $message, array $context = []) { $file = $this->filePath($level); $msg = ''; switch ($level) { case LogLevel::DEBUG: // 调试可以打印对象 ob_start(); var_dump($message); $message = ob_get_contents(); ob_end_clean(); case LogLevel::ERROR: // 堆栈情况 $debugs = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); $trace = ''; foreach ($debugs as $i => $t) { if ($i > 1 && $i < count($debugs) - 4) { empty($t['file']) && ($t['file'] = '控制器' . $t['class']); $_line = '**'; for ($j = 0; $j < $i; $j++) { $_line .= '>'; } $trace .= $_line . $t['file'] . ',' . (empty($t['line']) ? '' : $t['line'] . '行,') . '方法' . $t['function'] . PHP_EOL; } } $message = '【' . TimeStatic::formatTime() . '】' . PHP_EOL . $message . PHP_EOL . $trace . PHP_EOL . PHP_EOL; break; case LogLevel::ALERT: // 报警 $message = '【' . TimeStatic::formatTime() . '】' . PHP_EOL . $message . PHP_EOL . PHP_EOL; default: $message = $this->interpolate($message, $context); break; } FileStatic::write($message, $file); }