<?php namespace Laravel\Cache\Drivers;class File extends Driver {/*** The path to which the cache files should be written.* 缓存文件应写入的路径。* @var string*/protected $path;/*** Create a new File cache driver instance.* 创建一个新的文件缓存驱动程序实例。* @param  string  $path* @return void*/public function __construct($path){$this->path = $path;}/*** Determine if an item exists in the cache.* 确定缓存中是否存在指定键的项* @param  string  $key* @return bool*/public function has($key){return ( ! is_null($this->get($key)));}/*** Retrieve an item from the cache driver.* 从缓存驱动程序中检索项* @param  string  $key* @return mixed*/protected function retrieve($key){if ( ! file_exists($this->path.$key)) return null;// File based caches store have the expiration timestamp stored in// UNIX format prepended to their contents. This timestamp is then// extracted and removed when the cache is read to determine if// the file is still valid.// 基于文件的缓存存储具有以 UNIX 格式存储的到期时间戳,并添加到它们的内容中。 然后在读取缓存以确定文件是否仍然有效时提取并删除此时间戳。if (time() >= substr($cache = file_get_contents($this->path.$key), 0, 10)){return $this->forget($key);}return unserialize(substr($cache, 10));}/*** Write an item to the cache for a given number of minutes.* 向缓存中写入一个带有过期时间的项* <code>*        // Put an item in the cache for 15 minutes*     Cache::put('name', 'Taylor', 15);* </code>** @param  string  $key* @param  mixed   $value* @param  int     $minutes* @return void*/public function put($key, $value, $minutes){$value = $this->expiration($minutes).serialize($value);file_put_contents($this->path.$key, $value, LOCK_EX);}/*** Delete an item from the cache.* 从缓存中删除一个项* @param  string  $key* @return void*/public function forget($key){if (file_exists($this->path.$key)) @unlink($this->path.$key);}}

github地址: https://github.com/liu-shilong/laravel3-scr

【Laravel3.0.0源码阅读分析】文件缓存类file.php相关推荐

  1. NJ4X源码阅读分析笔记系列(三)—— nj4x-ts深入分析

    NJ4X源码阅读分析笔记系列(三)-- nj4x-ts深入分析 一.系统的工作流程图(模块级) 其工作流程如下(以行情获取为例): 应用端向Application Server发起连接 应用服务器调用 ...

  2. NJ4X源码阅读分析笔记系列(一)——项目整体分析

    NJ4X源码阅读分析笔记系列(一)--项目整体分析 NJ4X是什么 参见NJ4X的官网:http://www.nj4x.com/ Java and .Net interfaces to support ...

  3. Vuex源码阅读分析

    Vuex源码阅读分析 Vuex是专为Vue开发的统一状态管理工具.当我们的项目不是很复杂时,一些交互可以通过全局事件总线解决,但是这种观察者模式有些弊端,开发时可能没什么感觉,但是当项目变得复杂,维护 ...

  4. openlab的源码阅读——config文件配置

    openlab源码阅读--config文件配置 把config文件单独摘出来放在了CSDN上--https://download.csdn.net/download/qq_32651847/85321 ...

  5. 12 哈希表相关类——Live555源码阅读(一)基本组件类

    12 哈希表相关类--Live555源码阅读(一)基本组件类 这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 ...

  6. 【opencart3源码分析】文件缓存类file.php

    <?php namespace Session; /*** 文件缓存类* @package Session*/ class File {private $directory;// 读取缓存pub ...

  7. 18 TaskScheduler任务调度器抽象基类——Live555源码阅读(一)任务调度相关类

    这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/ol ...

  8. 16 BasicHashTable基本哈希表类(三)——Live555源码阅读(一)基本组件类

    这是Live555源码阅读的第一部分,包括了时间类,延时队列类,处理程序描述类,哈希表类这四个大类. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/oloroso ...

  9. 17 任务调度相关类综述——Live555源码阅读(一)任务调度相关类

    这是Live555源码阅读的第二部分,包括了任务调度相关的三个类.任务调度是Live555源码中很重要的部分. 本文由乌合之众 lym瞎编,欢迎转载 http://www.cnblogs.com/ol ...

最新文章

  1. Mysql与Oracle区别
  2. 使用python操作redis及简单应用
  3. 进阶学习(3.9) Bridge Pattern 桥接模式
  4. 【转】Go 语言教程(2)——表达式
  5. C++ 字符ASC排序
  6. C++ Primer 5th笔记(6)chapter6 函数: 调试帮助
  7. 数据结构:线性数据结构(2)-队列(栈,队列,deques, 列表)
  8. beoplay耳机序列号查询_BOSE耳机序列号如何查询?
  9. 【错误记录】 ERROR java.lang.NoClassDefFoundError
  10. 这段代码很Pythonic | 相见恨晚的 itertools 库
  11. win11菜单栏的推荐项目怎么取消 windows11取消推荐项目的设置方法
  12. 【OpenCV学习笔记】【函数学习】十七(imread()函数)
  13. 局域网的主机如何连接外网
  14. 如何进行系统分析与设计
  15. java webservice 500_Webservice调用返回错误500
  16. python控制excel打印_python对excel表格的操作
  17. iphone 计算文件长度
  18. U盘中毒后里面的数据怎样恢复
  19. 前端逼死强迫症之DOM
  20. 关于java项目与web项目中lib包的那点事

热门文章

  1. 【PCL】—基于形态学的点云分割算法详解
  2. STEP文件格式(*.step, *.stp)是什么软件。怎样打开
  3. Vue 中如何配置项目支持 JSX 语法
  4. 慕尼黑工业大学计算机博士申请条件,德国慕尼黑工业大学博士留学申请的要求有什么...
  5. 来自网页的消息:没有注册,无法打印网页税单数据的解决办法
  6. python批量处理图片_Python批处理图片尺寸
  7. 使用MATLAB Coder将工具箱中的系统对象转换为C代码
  8. STL系列之六 set与hash_set
  9. 2. 在JavaScript中使用变量,输出个人基本信息(学号、姓名、性别等)
  10. Python实现迪杰斯特拉算法