Zend framework 在ZF项目中,将memcache放在何处?

Zend framework 在ZF项目中,将memcache放在何处?,zend-framework,memcached,convention,Zend Framework,Memcached,Convention,我试图在我的项目中采用memcached,该项目是在ZendFrame下构建的 首先,我在库中创建了一个Memcached类(这似乎有点不必要,因为它几乎只封装了memcache提供的函数) 那么我想知道我到底应该在哪里使用它 控制器还是映射器 我可以看出这两种方法都有其道理,做这件事的常规方法是什么 谢谢,伙计们。在bootstrap.php下,您需要使用返回void的_initCache()函数定义配置 定义前端驱动程序、后端驱动程序(您将在其中物理保存数据)并加载工厂 有两种类型的缓存,服

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

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

那么我想知道我到底应该在哪里使用它

控制器还是映射器

我可以看出这两种方法都有其道理,做这件事的常规方法是什么


谢谢,伙计们。

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

定义前端驱动程序、后端驱动程序(您将在其中物理保存数据)并加载工厂

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

如果选择服务器,则需要定义外部扩展(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);
你在哪里可以使用它

应用程序中的任意位置

经历这一切


有问题吗?:)

非常感谢你,业力大师:-这真的扩展了我对这件事的看法。虽然最后一个问题是,是的,它可能在任何地方,但有没有任何惯例或建议的规则,它应该只放在控制器或模型中,像这样?大师?哇!谢谢!:)它应该是模型。模型=业务逻辑=从任何外部(缓存、数据库等都是外部源)获取+操作+事务。现在单击我答案左侧的勾号,以便其他人也可以参考;):D