将memcache放在ZF项目中的哪个位置?

时间:2012-08-17 04:25:17

标签: zend-framework memcached convention

我正在尝试在我的项目中采用memcached,该项目是在ZendFrame下构建的。

首先,我在库中创建一个Memcached类(它看起来有点不必要,因为它几乎只是封装了memcache提供的函数)。

然后我想知道我应该在哪里使用它?

控制器还是Mappers?

我可以看到两种方式都有它的意义,传统的做法是什么。

谢谢,伙计们。

1 个答案:

答案 0 :(得分:1)

在bootstrap.php下,您需要使用_initCache()函数定义配置,该函数返回void。

定义frontEnd驱动程序,后端驱动程序(你将在物理上保存数据)并加载工厂!

有两种类型的缓存,服务器和压缩。

如果选择服务器,则需要定义外部扩展(memcached是扩展名)

我建议的一个片段是:

function _initCache() {

        $frontendDriver = 'Core';
        $frontendOptions = array(
            'lifetime' => 7200, // cache lifetime of 2 hours
            'automatic_serialization' => true
        );

        $backendDriver = extension_loaded('memcache') ? 'Memcached' : 'File';
        $backendOptions = array();

        // getting a Zend_Cache_Core object
        $cache = Zend_Cache::factory($frontendDriver, $backendDriver, $frontendOptions, $backendOptions);

        Zend_Registry::set('Zend_Cache', $cache);
    }

从缓存中获取数据:

$date = $cache->load($cacheKey);

将数据保存到缓存中:

$cache->save($data, $cacheKey);

你在哪里可以使用它?

您的申请中的任何地方!

完成此good article

有问题吗? :)