Zend Framework 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()

Благодарю.

2

Решение

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

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]