【问题标题】:Zf2 "The iterator class does not exist" on Session\Container definitionSession\Container 定义中的 Zf2“迭代器类不存在”
【发布时间】:2014-04-08 08:02:41
【问题描述】:

有时在我的网站 (ZendFramework2) 上,设置会话变量时出现错误。 错误:

PHP Fatal error:  Uncaught exception 'Zend\\Stdlib\\Exception\\InvalidArgumentException' with message 'The iterator class does not exist' in /MySite/vendor/zendframework/zendframework/library/Zend/Stdlib/ArrayObject/PhpReferenceCompatibility.php:374
Stack trace:
#0 /MySite/vendor/zendframework/zendframework/library/Zend/Stdlib/ArrayObject/PhpReferenceCompatibility.php(414): Zend\\Stdlib\\ArrayObject\\PhpReferenceCompatibility->setIteratorClass(NULL)
#1 [internal function]: Zend\\Stdlib\\ArrayObject\\PhpReferenceCompatibility->unserialize('a:4:{s:7:"stora...')
#2 /MySite/vendor/zendframework/zendframework/library/Zend/Session/SessionManager.php(95): session_start()
#3 /MySite/vendor/zendframework/zendframework/library/Zend/Session/AbstractContainer.php(78): Zend\\Session\\SessionManager->start()
#4 /MySite/module/Application/Module.php(97): Zend\\Session\\AbstractContainer->__construct('site')
#5 [internal function]: Application\\Module->onBootstrap(Object(Zend\\Mvc\\MvcEvent))
#6 /MySite/vendor/zendframework/zendframework/library/Zend/Stdlib/ArrayObject/PhpReferenceCompatibility.php on line 374

代码 Module.php 第 97 行:

$s_site = new \Zend\Session\Container('site');

我尝试了,但我找不到原因。你有什么主意吗?需要更多信息? 谢谢。

【问题讨论】:

  • 不确定它的相关性,但PhpReferenceCompatibility 类在 v2.3 中被删除,也许尝试更新到最新版本的 ZF2 看看问题是否仍然存在。
  • 我尝试更新 ZendFramework 版本,但是适应应用程序的时间太长了。我没有时间.. 另一个想法?

标签: php session zend-framework2


【解决方案1】:

这是 ArrayObject/PhpReferenceCompatibility 中的 setIteratorClass 方法被传递了一个空的 $class 参数的结果。我不确定为什么它有时会得到一个空值,但我修复它的方法是在传递一个空对象时将迭代器类设置为“ArrayIterator”,如下所示:

if (!isset($class)) {
    $class = 'ArrayIterator';
}

【讨论】:

    【解决方案2】:

    在最新的 zf2 版本中,ArrayObject/PhpReferenceCompatibility 类已被移除,因此请在 stdlib/ArrayObject.php 中进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-18
      相关资源
      最近更新 更多