日期:2014-05-16  浏览次数:20455 次

ThinkPHP学习笔记(十六)使用视图(数据库视图)和缓存

Action

<?php
class UserViewAction extends Action{
	public function index(){
		$user=new UserViewModel();
		$list=$user->select();
		dump($list);
	}
}
?>

自定义一个viewmodel

<?php
	class UserViewModel extends ViewModel{
		public $viewFields=array(
			//设置查询的表名和字段
			'User'=>array('id','username','password'),
			//message的id重命名为mid
			//_on表示关联条件;_type表示做关联还是右关联
			'UserMessage'=>array('id'=>'mid','msg','_on'=>'User.id=UserMessage.id','_type'=>'LEFT'),
		);
	}
?>


缓存的使用:

config的配置:

//设置缓存
//file:是在runtime/temp/下的串行化的数据
//memecache:在内存之中
'DATA_CACHE_TYPE'=>'file',
'DATA_CACHE_TIME'=>'3600',
//开启HASH子目录进行缓存
'DATA_CACHE_SUBDIR'=>true,
//子目录的等级
'DATA_PATH_LEVLE'=>3,

Action

<?php
class CacheAction extends Action{
    public function index(){
    	//$cache=Cache::getInstance('缓存方式','缓存参数');
    	//使用Xcache,设置有效期60秒
    	//$cache=Cache::getInstance('Xcache',array('expace'=>60));
    	
    	//$cache->set('缓存名称','值');$cache->name='值';
    	//$value=$cache->get('缓存名称');$cache->name
    	//$cache->rm('缓存名称');unset($cache->name)
    	
    	//缓存快捷方法:S('名字','数据','时间','类型');
    	$list=S('alist');
    	if (empty($list)) {
    		echo '没有缓存啊,重新查找'.'<br>';
    		$user=new UserViewModel();
    		$list=$user->select();
    		S('alist',$list,3000);
    	}
    	
    	
    	//文件的快速缓存F('名字','数据','位置');
    	//支持创建缓存子目录F('user/data','数据');
    	
//    	dump($list);
    	$this->assign('alist',$list);
    	$this->display();
    }
}
?>

html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<volist name="alist" id="vo">
	<!--{$vo['username']}-->---<br>
</volist>
</body>
</html>