>  기사  >  php教程  >  ZF框架Zend_Cache 缓存基本使用方法

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

WBOY
WBOY원래의
2016-06-06 19:33:121092검색

学习练习 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>";
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.