2

谁能简要告诉我在 Zend Framework 1.x 中添加缓存/启用缓存?即易于理解且易于实施的解决方案。谢谢。

4

2 回答 2

0

Zend Cache 提供了一种非常简单的方式来将数据存储在缓存中并提高速度。Zend 使用前端和后端来缓存。前端对于访问或操作缓存很有用。后端对于将数据存储在 File、Memcache、Sqlite 等中很有用。

首先通过在引导文件中创建函数来初始化引导文件中的前端和后端。

受保护的函数 _initCache(){

    $frontend= array(
        'lifetime' => 7200,
        'automatic_serialization' => true
    );

    $backend= array(
        'cache_dir' => '../application/tmp/',
    );

    $cache = Zend_Cache::factory('core',
            'File',
            $frontend,
            $backend
    );
    Zend_Registry::set('cache',$cache);
}

然后使用zend缓存工厂来定义缓存对象。参数core定义了泛型类型的zend缓存核心方式文件参数是定义缓存存储方式存储缓存记录的位置然后第二个和第四个是用于前端和后端。

现在使用 zend 注册表注册该缓存数组,以便您可以在任何控制器、模型等中使用它。

在要使用数据缓存的任何控制器或任何模型中定义以下代码。

    $result1 =””;
    $cache = Zend_Registry::get('cache');

if(!$result1 = $cache->load('mydata')) {
        echo 'caching the data…..';
    $data=array(1,2,3);
    $cache->save($data, 'mydata');
} else {
    echo 'retrieving cache data…….';
    Zend_Debug::dump($result1);
}

首先在上面的代码中我们得到了缓存数组。现在,如果未设置结果一,则缓存完成意味着文件是在您在后端数组中定义的路径处生成的

对于下一次页面加载,该数据将从缓存数据存储的文件中检索。

您可以根据定义的路径检查文件。

在该文件中,数据为 json 格式。

于 2013-12-26T14:36:42.560 回答
0

设置缓存:

$frontend= array(
    'lifetime' => 60,
    'automatic_serialization' => true
);

$backend= array(
    'cache_dir' => 'D:\cache',
);

$cache = Zend_Cache::factory('core', 'File', $frontend, $backend );
Zend_Registry::set('cache',$cache);

使用它来设置:

private function setCached($key, $data)
{
    $cache = Zend_Registry::get('cache');
    $cache->save($data, $key);
}

使用它来获取:

private function getCached($key)
{
    $cache = Zend_Registry::get('cache');
    if(!$result = $cache->load($key)) 
    {
        return false;
    } 
    else 
    {
        return $result;
    }
}
于 2013-11-07T11:44:01.737 回答