App接口两大核心技术,缓存技术以及定时任务。
首先来学习缓存技术,有我们常见的:静态缓存 memcache、redis缓存
来了解下静态缓存,静态缓存就是我们存放在磁盘上的静态文件,用php生成数据放入静态文件中。php操作缓存是有三个要点,生成缓存、获取缓存、以及删除缓存;
我们可以封装一个类,用来实现php操作缓存;
---- file.php ---封装类
<span style="font-size:14px;"><?php
class File{
private $_dir;//定义默认路径
const EXT='.txt';
public function __construct(){
//获取文件
$this->_dir=dirname(__FILE__).'/files/';
}
public function cacheData($key,$value='',$path=''){
//数据写入文 件
$filename=$this->_dir.$path.$key.self::EXT;
if($value!==''){//将value值写入缓存
//如果为空删除缓存
if(is_null($value)){
return @unlink($filename);
}
$dir=dirname($filename);
//判断目录是否存在
if(!is_dir($dir)){
mkdir($dir,077);
}
//写入缓存
return file_put_contents($filename, json_encode($value));
}
//判断文件是否存在
if(!is_file($filename)){
return false;
}else{
return json_decode(file_get_contents($filename),true);
}
}
}
</span>
----text.php---调用类
<span style="font-size:14px;">
//加载类文件
require_once('./file.php');
$data=array(
'id'=>1,
'name'=>'mpk',
'type'=>array(4,5,6),
'test'=>array(7,9,11=>array(123,'mmm'))
);
$file=new File();
//生成缓存
if($file->cacheData('index_mpk',$data)){
echo "success";
}else{
echo "error";
}
//如果为没有值获取缓存
if($file->cacheData('index_mpk')){
print_r($file->cacheData('index_mpk'));die;
echo "success";
}else{
echo "error";
}
//如果为null删除缓存
if($file->cacheData('index_mpk',null)){
echo "success";
}else{
echo "error";
}
</span>
这样就通过代码完成了生成缓存、获取缓存、以及删除缓存;