【问题标题】:Error with Clousure in zend framework cacheZend 框架缓存中的 Closure 错误
【发布时间】:2017-12-01 18:01:02
【问题描述】:

我的 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

我尝试清除缓存,但仍然出现此错误。

【问题讨论】:

  • 你的模块配置中是否有闭包?
  • 是的,有时我使用闭包而不是工厂?错了吗?

标签: php caching zend-framework zend-framework3


【解决方案1】:

当您为配置文件打开缓存时,您将 PHP 设置为它无法完成的任务,即闭包序列化。它根本做不到。

此外,您将失去使用缓存功能的能力 当您在其中使用闭包时的配置文件。这是一个 PHP 不能(反)序列化闭包的限制。

https://framework.zend.com/manual/2.2/en/modules/zend.service-manager.quick-start.html

换句话说,你必须求助于工厂。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多