我遇到了Zend Framework缓存问题 - 当我将我的应用程序投入生产时,会出现此错误。
Fatal error: Uncaught Error: Call to undefined method Closure::__set_state() in /home/users/devmonitoring/data/cache/module-config-cache.application.config.cache.php:67
Stack trace:
#0 /home/users/devmonitoring/vendor/zendframework/zend-modulemanager/src/Listener/ConfigListener.php(392): include()
#1 /home/users/devmonitoring/vendor/zendframework/zend-modulemanager/src/Listener/ConfigListener.php(70): Zend\ModuleManager\Listener\ConfigListener->getCachedConfig()
#2 /home/users/devmonitoring/vendor/zendframework/zend-modulemanager/src/Listener/DefaultListenerAggregate.php(98): Zend\ModuleManager\Listener\ConfigListener->__construct(Object(Zend\ModuleManager\Listener\ListenerOptions))
#3 /home/users/devmonitoring/vendor/zendframework/zend-modulemanager/src/Listener/DefaultListenerAggregate.php(42): Zend\ModuleManager\Listener\DefaultListenerAggregate->getConfigListener()
#4 /home/users/devmonitoring/vendor/zendframework/zend-mvc/src/Service/ModuleManagerFactory.php(77): Zend\ModuleManager\Listener\DefaultListenerAggregate-> in /home/users/devmonitoring/data/cache/module-config-cache.application.config.cache.php on line 67
我尝试清除缓存,但仍然会发生此错误。
答案 0 :(得分:1)
您为配置文件打开缓存的时间,您将PHP设置为它无法执行的任务,即关闭序列化。它根本无法做到。
此外,您将失去使用缓存功能的能力 在其中使用闭包时的配置文件。这是一个 PHP的限制,不能(de)序列化闭包。
https://framework.zend.com/manual/2.2/en/modules/zend.service-manager.quick-start.html
换句话说,你必须求助于工厂。