2013-02-22 96 views
1

我是Zend Framework中的新成員,我有一個問題。Zend Framework 2 - 適配器

我在我的CMS中有20個模塊,所有使用APC高速緩存適配器的模塊(在模塊配置中定義),現在我想將此適配器更改爲Memcache。

有什麼好的做法,而不是改變所有的config.module.php?

回答

2

如果您使用DI/Service Manager設置緩存/緩存適配器,那麼您應該可以通過更改Service Manager配置中的定義來非常簡單地進行更改。

服務管理器配置:

'My\Cache' => function($sm){ 
     $cache = \Zend\Cache\StorageFactory::factory(array(
      'adapter' => 'filesystem', 
      'plugins' => array(
       'exception_handler' => array('throw_exceptions' => FALSE), 
       'serializer' 
      ) 
     )); 

     $cache->setOptions(array(
      'cache_dir' => './data/cache', 
      'ttl'  => 60*60, 
     )); 

     return $cache; 
    }, 

然後,您可以只改變SM裏面的適配器和設置。所有模塊都將使用服務管理器來消耗緩存,以便它們不需要進一步更改。

一些模塊:

<?php $cache = $this->getServiceManager()->get('My\Cache'); ?>