首页 > php教程 > php手册 > 正文

ZF框架Zend_Cache 缓存基本使用方法

WBOY
发布: 2016-06-06 19:33:12
原创
1092 人浏览过

学习练习 Zend Framework ?php/*Zend_Cache 文件缓存的基本操作*/require_once("Zend/Loader.php");//载入Zend缓存类(Zend_Cache)Zend_Loader::loadClass("Zend_Cache");//前端缓存设置(生命周期、是否序列化)$Foptions = array('lifetime' = 60 , 'automtic_

学习练习
Zend Framework
<?php
/*Zend_Cache 文件缓存的基本操作*/

require_once("Zend/Loader.php");
//载入Zend缓存类(Zend_Cache)
Zend_Loader::loadClass("Zend_Cache");
//前端缓存设置(生命周期、是否序列化)
$Foptions = array('lifetime' => 60 , 'automtic_Serialization' => true);
//后端缓存设置(缓存存放路径)
$Boptions = array('cacheDir' => 'cache');
//开启缓存模式,(Core[核心],File[文件],前端缓存配置信息,后端缓存配置信息)
$Cache = Zend_Cache::factory('Core','File',$Foptions,$Boptions);
//判断缓存是否存在,如果存在则载入缓存load('String'[缓存名称])
if ($Result = $Cache -> load('cache_two')) 
{
	echo "缓存已经存在!<br>";
	print_r($Result);
}
else
{
	//如果缓存不存在则读取文件,并将文件内容写入湖缓存
	echo "缓存不存在!<br>";
	$Filename = 'temp.txt';
	$Fopen    = fopen($Filename,'r');
	$Result   = fread($Fopen, filesize($Filename));
	fclose($Fopen);
	//保存缓存方式load($Result[读取资源],'缓存名称')
	$Cache -> save($Result,'cache_two');
	print_r($Result);
}
?>
登录后复制
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass("Zend_Cache");
Zend_Loader::loadClass("Zend_Db");
//------------数据库连接配置------------//
$Config = array('host' => '127.0.0.1' ,
				'username' => 'root' , 
				'password' => '111' , 
				'dbname' => 'test',
				'profiler' => "true"
				);
$Db = Zend_Db::factory('PDO_Mysql',$Config);
$Table = 'sanguo';
$Select = $Db -> select();
$Select -> from($Table,'*');
$Select -> Where("s_sheng='河北'");
$Result = $Db -> fetchAll($Select);
//-----------------end------------//

//---将数据库读取的资源以Output方式写入缓存---//
$Foptions = array('lifetime' => 3600 , 'automtic_Serialization' => true);
$Boptions = array('cacheDir' => 'cache');
$Cache = Zend_Cache::factory('Output','File',$Foptions,$Boptions);
if (!$Cache -> start('hebei10')) 
{
	echo "<table border='1' width='500'>";
	foreach ($Result as $key => $value) 
	{
		echo "<tr>";
		foreach ($value as $key2 => $value2) 
		{
			echo "<td>". $value2 . "</td>";
		}
		echo "</tr>";
	}
	echo "</table>";
	echo "这里是缓存时间:" . date("Y-m-d H:i:s") ."<br>";
	$Cache -> end();
}
//-----用load()方法调用并输出缓存------//
echo "<hr>这里没有被缓存:" . date("Y-m-d H:i:s") . "<br>";
$Result2 = $Cache -> load('hebei10');
echo $Result2;
?>
登录后复制
<?php
require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Cache');
$Foptions = array('lifetime' => 3600 , 'automtic_Serialization' => true);
$Boptions = array('cacheDir' => 'cache');
$Cache = Zend_Cache::factory('Function','File',$Foptions,$Boptions);

function GongBeiShu($num1,$num2)
{
	for ($i=$num1; $i <= $num2 ; $i++) 
	{ 
		if ($i%3 == 0) 
		{
			$Result[] = $i;
		}
	}
	return $Result;
}

$Cache -> call('GongBeiShu',array(1,50),array('temp_GongBeiShu'));
$Date = $Cache ->call('GongBeiShu',array(1,50),array('temp_GongBeiShu'));
print_r($Date);
?>
登录后复制
<?php
/*ZF缓存类前端Class的使用*/

require_once("Zend/Loader.php");
Zend_Loader::loadClass('Zend_Cache');
//自定义一个测试用的类
class test
{
	public static function sum($num1,$num2)
	{
		return ($num1 + $num2);
	}
	public function cheng($num1,$num2)
	{
		return ($num1 * $num2);
	}
}
//前端配置:cached_entity所对应的值为类名
/*注:如果类中存在非静态方法,赋值时必须实例化,
否则在调用时只能调用静态方法 例如:
'cached_entity' => new test() 可以调用任何权限方法
or
'cached_entity' => 'test' 只能调用静态方法
*/
$Foptions = array('cached_entity' => new test());
//开启缓存(前端,后端,前端配置)
$Cache = Zend_Cache::factory('Class','File',$Foptions);
//第一次调用被写入缓存,第二次调用才会返回;
$Cache -> sum(9,9);
$Cache -> cheng(9,9);
echo "sum()方法返回结果为:" . $Cache -> sum(3,3) . "<br>";
echo "cheng()方法返回结果为:" . $Cache -> cheng(2,7) . "<br>";
?>
登录后复制
$Cache = Zend_Cache::factory('Core','File',$Foptions,$Boptions);
if ($Result = $Cache -> load('cache_two')) 
{
	echo "缓存已经存在!<br>";
	print_r($Result);
	$Cache -> clean('all');
	echo "<br>";
	echo "缓存已经清除!<br>";
}
登录后复制
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!