12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * FileCache 文件缓存
- *
- * @author gaoming13 <gaoming13@yeah.net>
- * @link https://github.com/gaoming13/wechat-php-sdk
- * @link http://me.diary8.com/
- */
- namespace echowx\utils;
- class FileCache {
- protected $options = [
- 'expire' => 7000,
- 'cache_subdir' => true,
- 'prefix' => '',
- 'path' => CACHE_PATH,
- 'data_compress' => false,
- ];
- /**
- * 构造函数
- * @param array $options
- */
- public function __construct($options = [])
- {
- if (!empty($options)) {
- $this->options = array_merge($this->options, $options);
- }
- if (substr($this->options['path'], -1) != '/') {
- $this->options['path'] .= '/';
- }
- $this->init();
- }
- /**
- * 初始化检查
- * @access private
- * @return boolean
- */
- private function init()
- {
- // 创建项目缓存目录
- if (!is_dir($this->options['path'])) {
- if (mkdir($this->options['path'], 0755, true)) {
- return true;
- }
- }
- return false;
- }
- public function get($name, $default = false)
- {
- $filename = $this->getCacheKey($name);
- if (!is_file($filename)) {
- return $default;
- }
- $content = file_get_contents($filename);
- if (false !== $content) {
- $arr = json_decode($content,true);
- if($arr['expire'] <= time())
- {
- return false;
- }
- return $content;
- }
- }
- public function set($name, $value, $expire = null)
- {
- if (is_null($expire)) {
- $expire = $this->options['expire'];
- }
- $filename = $this->getCacheKey($name);
- $json = json_encode(array($name=>$value,"expire"=>time()+$expire));
- $result = file_put_contents($filename,$json);
- if ($result) {
- return true;
- }
- return false;
- }
- /**
- * 获取缓存文件名
- * @dateTime 2018-01-29T14:32:49+0800
- * @author xm
- * @return [type] [description]
- */
- public function getCacheKey($name)
- {
- return $this->options['path']."/".$name.'_cache.php';
- }
- }
|