2014-12-02 2 views
1

я пытаюсь включить кэш для конфигурационных файлов в рамках ZEND 2:в Zend Framework 2 - Кэш файлы конфигурации

в module.config.php (часть услуг):

'service_manager' => array(
     'factories' => array(
      'translator' => 'Zend\I18n\Translator\TranslatorServiceFactory', 
      'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', 
      'doctrine.cache.mycache' => function ($sm) { 
       $cache = new \Doctrine\Common\Cache\MemcacheCache(); 
        $memcache = new \Memcache(); 
        $memcache->connect('localhost', 11211); 
        $cache->setMemcache($memcache); 
       return $cache; 
     }, 
     ), 
    ), 

application.config.php (часть включения кэша для конфигурации):

'module_listener_options' => array(
     'module_paths' => array(
      './module', 
      './vendor', 
     ), 
     'config_glob_paths' => array(
      'config/autoload/{,*.}{global,local}.php', 
     ), 
     'config_cache_enabled' => true, 
     'config_cache_key' => md5('config'), 
     'module_map_cache_enabled' => true, 
     'module_map_cache_key' => md5('module_map'), 
     'cache_dir' => "./data/cache/modulecache", 
    ), 

А вот ошибка я получил:

Fatal error: Call to undefined method Closure::__set_state() 

Спасибо.

ответ

1

Файлы конфигурации нельзя кэшировать, если они содержат анонимные функции (в вашем случае значение для doctrine.cache.mycache). Вам нужно будет переместить только эту часть из файла конфигурации и вместо этого в ваш класс Module.php 'getServiceConfig(). Это должно решить проблему.

+0

спасибо за relpy, я объединил эту часть в Module.php, но я не знаю, как ее заменить в моем модуле.config.php, может у вас больше кальцинировать, спасибо. – user3911183

+0

Если вы переместили его на Module.php, просто удалите эту часть из файла конфигурации. ZF объединяет два вместе автоматически. –

+0

для части доктрины, это нормально, спасибо, у меня есть другая проблема: я получил закрытие для адаптера, я много заработал для него в модуле.config и в модуле, но не могу найти его, могу ли вы направить меня здесь плз? – user3911183