array eaccelerator_cached_scripts () void eaccelerator_cache_output (string $key, string $eval_code, [int $ttl = 0]) void eaccelerator_cache_page (string $key, [int $ttl = 0]) void eaccelerator_cache_result (string $key, string $code, [int $ttl = 0]) void eaccelerator_caching (boolean $flag) void eaccelerator_clean () void eaccelerator_clear () array eaccelerator_dasm_file (mixed $filename) mixed eaccelerator_encode (mixed $src, [mixed $prefix = ''], [string $pre_content = ''], [string $post_content = '']) void eaccelerator_gc () mixed eaccelerator_get (string $key) array eaccelerator_info () array eaccelerator_list_keys () void eaccelerator_load () boolean eaccelerator_lock (string $key) void eaccelerator_optimizer (boolean $flag) void eaccelerator_purge () boolean eaccelerator_put (string $key, mixed $value, [int $ttl = 0]) array eaccelerator_removed_scripts () boolean eaccelerator_rm (string $key) void eaccelerator_rm_page (string $key) boolean eaccelerator_set_session_handlers () boolean eaccelerator_unlock (string $key) 有关上述文档详细说明请参考官方文档:
API Documents 下面有部分网友翻译后的接口说明:
eaccelerator_put($key, $value, $ttl=0) 将 $value 以 $key 为键名存进缓存(php4下支持对像类型,看源码好像zend2里不支持了),$ttl 是这个缓存的生命周期,单位是秒,省略该参数或指定为 0 表示不限时,直到服务器重启清空为止。 eaccelerator_get($key) 根据 $key 从缓存中返回相应的 eaccelerator_put() 存进去的数据,如果这项缓存已经过期或不存在那么返回值是 NULL eaccelerator_rm($key) 根据 $key 移除缓存 eaccelerator_gc() 移除清理所有已过期的 key eaccelerator_lock($key) 为 $key 加上锁定操作,以保证多进程多线程操作时数据的同步。需要调用 eaccelerator_unlock($key) 来释放这个锁或等待程序请求结束时自动释放这个锁。 例如: <?php eaccelerator_lock ( " count " ) ; eaccelerator_put ( " count " , eaccelerator_get ( " count " ) + 1 ) ); ?> eaccelerator_unlock($key) 根据 $key 释放锁 eaccelerator_cache_output($key, $eval_code, $ttl=0) 将 $eval_code 代码的输出缓存 $ttl 秒,($ttl参数同 eacclerator_put) 例如: <?php eaccelerator_cache_output ( ' test ' , ' echo time(); phpinfo(); ' , 30 ) ; ?> eaccelerator_cache_result($key, $eval_code, $ttl=0) 将 $eval_code 代码的执行结果缓存 $ttl 秒,($ttl参数同 eacclerator_put),类似 cache_output 例如: <?php eaccelerator_cache_result ( ' test ' , ' time() . "Hello"; ' , 30 ) ; ?> eaccelerator_cache_page($key, $ttl=0) 将当前整页缓存 $ttl 秒。 例如: <?php eaccelerator_cache_page ( $_SERVER [ ' PHP_SELF ' ] . ' ?GET= ' . serialize ( $_GET ) , 30 ) ; echo time () ; phpinfo () ; ?> eaccelerator_rm_page($key) 删除由 eaccelerator_cache_page() 执行的缓存,参数也是 $key
2、PHP代码中使用eAccelerator加速 下面有一个测试的代码,你可以测试一下eAccelerator强大的威力:(该代码在 cli 模式下可能无效)
<?php class test_cache { var $pro = ' hello ' ; function test_cache () { echo " Object Created!<br> \n " ; } function func () { echo ' , the world! ' ; } function now ( $t ) { echo date ( ' Y-m-d H:i:s ' , $t ) ; } } $tt = eaccelerator_get ( " test_tt " ) ; if ( ! $tt ) { $tt = new test_cache ; eaccelerator_put ( " test_tt " , $tt ) ; echo " no cached!<br> \n " ; } else { echo " cached<br> \n " ; } echo $tt -> pro ; $tt -> func () ; $tt -> now ( time () + 86400 ) ; ?> 另外,据说在著名的vBulletin 3.60Beta版里面已经集成了对eAccelerator的支持,下面是一段来自vBulletin里面的代码 // ############################################################################# // eAccelerator /** * Class for fetching and initializing the vBulletin datastore from eAccelerator * * @package vBulletin * @version $Revision: 0.1 $ * @date $Date: 2005/06/12 13:14:18 $ */ class vB_Datastore_eAccelerator extends vB_Datastore { /** * Fetches the contents of the datastore from eAccelerator * * @param array Array of items to fetch from the datastore * * @return void */ function fetch ( $itemarray ) { if ( ! function_exists ( ' eaccelerator_get ' )) { trigger_error ( " eAccelerator not installed " , E_USER_ERROR ) ; } foreach ( $this -> defaultitems AS $item ) {