📄 examples.txt
字号:
// =================================================// === Classical use of the "Core" of Zend_Cache ===// =================================================<?phprequire_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => 7200 // cache lifetime of 2 hours);$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);$id = 'foo'; // cache id of "what we want to cache"if (!($cache->test($id))) { // cache missed require_once ... // for perfs reasons, all "require_once" have to be loaded ONLY if the cache is missed require_once ... // we build "what we want to cache" // for example $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . $i; } // We save the result into the cache $cache->save($data);} else { // cache hit $data = $cache->load($id);}// do something with $data :)// [...]?>// =================================================// === "Compact" use of the "Core" of Zend_Cache ===// =================================================// This is ok if you store only strings into the cache// (because with "automatic_serialization" option, it's possible to store// some booleans into cache)<?php// [...] // require and configuration$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);$id = 'foo'; // cache id of "what we want to cache"if (!($data = $cache->load($id))) { // cache missed $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . $i; } $cache->save($data); } echo($data);?>// =================================================// === "Compact" use of the "Core" of Zend_Cache ===// === (example with two blocks) ===// =================================================// This is ok if you store only strings into the cache// (because with "automatic_serialization" option, it's possible to store// some booleans into cache)<?php// [...] // require and configuration$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);$id1 = 'foo'; // cache id of block1$id2 = 'bar'; // cache id of block2// BLOCK1if (!($data = $cache->load($id1))) { // cache missed $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . $i; } $cache->save($data); } echo($data);// NEVER CACHED BLOCKecho('NEVER CACHED !');// BLOCK2if (!($data = $cache->load($id2))) { // cache missed $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . '!'; } $cache->save($data); } echo($data);?>// =========================================================// === "Compact" use of the "Core" of Zend_Cache ===// === (example with two blocks and different lifetimes) ===// =========================================================<?php// [...] // require and configuration$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);$id1 = 'foo'; // cache id of block1$id2 = 'bar'; // cache id of block2// BLOCK1if (!($data = $cache->load($id1))) { // cache missed $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . $i; } $cache->save($data); } echo($data);// NEVER CACHED BLOCKecho('NEVER CACHED !');// BLOCK2if (!($data = $cache->load($id2))) { // cache missed $data = ''; for ($i=0;$i<10000;$i++) { $data = $data . '!'; } $cache->save($data, null, array(), 3600); // => this cache will have a specific lifetime of 3600 seconds } echo($data);?>// ============================================================// === Classical use of the "Output" frontend of Zend_Cache ===// ============================================================<?phprequire_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => 7200 // cache lifetime of 2 hours);$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('Output', 'File', $frontendOptions, $backendOptions);$id = 'foo'; // cache id of "what we want to cache"if (!($cache->start($id))) { // cache is not hit ! // Output you want to cache for ($i=0;$i<10000;$i++) { echo($i); } // store "captured" output into cache $cache->end();}?>// ==============================================================// === Classical use of the "Function" frontend of Zend_Cache ===// ==============================================================<?phprequire_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => 7200 // cache lifetime of 2 hours);$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('Function', 'File', $frontendOptions, $backendOptions);function function_to_cache($arg1, $arg2) { echo("called function_to_cache($arg1, $arg2)"); return $arg1 + $arg2;}// First call, the function will be called$res1 = $cache->call('function_to_cache', array(1, 3));echo($res1);// Second call, output and result will be get from cache$res2 = $cache->call('function_to_cache', array(1, 3));echo($res2);// Third call, the function will be called (because argument values are different)$res3 = $cache->call('function_to_cache', array(2, 5));echo($res3);?>// ===========================================================// === Classical use of the "Class" frontend of Zend_Cache ===// === (mode : class) ===// ===========================================================<?php// Class to cacheclass test { public static function foobar($param1, $param2) { echo "foobar_output($param1, $param2)"; return "foobar_return($param1, $param2)"; }}require_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => 7200 // cache lifetime of 2 hours, 'cached_entity' => 'test');$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('Class', 'File', $frontendOptions, $backendOptions);// First call, the static method will be called$res1 = $cache->foobar(1, 3);echo($res1);// Second call, output and result will be get from cache$res2 = $cache->foobar(1, 3);echo($res2);// Third call, the method will be called (because argument values are different)$res3 = $cache->foobar(2, 5)echo($res3);?>// ===========================================================// === Classical use of the "Class" frontend of Zend_Cache ===// === (mode : object) ===// ===========================================================<?php// Class to cacheclass test { private $_string = 'hello !'; public function foobar2($param1, $param2) { echo($this->_string); echo "foobar2_output($param1, $param2)"; return "foobar2_return($param1, $param2)"; }}require_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => 7200 // cache lifetime of 2 hours, 'cached_entity' => new test());$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('Class', 'File', $frontendOptions, $backendOptions);// First call, the method will be called$res1 = $cache->foobar(1, 3);echo($res1);// Second call, output and result will be get from cache$res2 = $cache->foobar(1, 3);echo($res2);// Third call, the method will be called (because argument values are different)$res3 = $cache->foobar(2, 5)echo($res3);?>// ==========================================================// === Classical use of the "File" frontend of Zend_Cache ===// ==========================================================<?php// The file frontend is used to get a cache driven by a master file// for example, you have a config file declared as master file// => all your cache records will be invalidated if the config file is touched// (very usefull to avoid the parsing of a XML file at each time for example)require_once 'Zend/Cache.php';$frontendOptions = array( 'lifetime' => null // no lifetime, 'master_file' => '/path/to/your/master.file' // your master file here);$backendOptions = array( 'cache_dir' => '/tmp/' // Directory where to put the cache files (make sure to add a trailing slash));$cache = Zend_Cache::factory('File', 'File', $frontendOptions, $backendOptions);// [...] identical to the "Core" use?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -