2014-09-25 55 views
0

Zend Framework 2不让我使用原始PHP会话。我正在使用Zend Framework 2的公用文件夹中的响应式文件管理器应用程序。只要文件管理器的对话框打开,就会出现以下错误。Zend Framework 2的原始PHP会话

Warning: Class __PHP_Incomplete_Class has no unserializer in E:\xampp\htdocs\MantissaAdmin\public\ResponsiveFilemanager\filemanager\config\config.php on line 2 

凡第2行,代码

session_start(); 

我怎样才能让这个Zend框架2不与文件管理器会话干扰。

回答

2

这不是ZF2的问题。在你的会话中有一个序列化对象,当session_start被调用时,php试图反序列化。但是因为PHP找不到该类(未声明),所以它使用__PHP_Incomplete_Class代替。

参见:PHP: unserialize - Manual

解决的最好办法:注册一个自动加载器加载缺课。你可以转储类名是这样的:

ini_set('unserialize_callback_func', '__unserialize_callback_func'); 
function __unserialize_callback_func($classname) 
{ 
    var_dump($classname); 
} 
session_start(); 
+0

非常感谢。它在我加载课程时起作用。我要给任何需要更多关于如何自动加载信息的人留下链接,这是对你答案的一个解释。 http://stackoverflow.com/questions/2325884/why-is-unserialize-callback-func-needed-when-spl-autoload-register-is-already-us – EresDev 2014-09-27 06:36:37

0

为了与其他第三方库和共享会话跨软件可能不ZF2相关工作;您需要确保您仍然可以访问ZF2自动加载器以及模块自动加载。在共享软件中确保在会话启动之前,您启动ZF2自动加载器并初始化ZF2应用程序。

$cwd = getcwd(); 
chdir('/path/to/zf2-application'); 
require 'init_autoloader.php'; 
Zend\Mvc\Application::init(require 'config/application.config.php'); 
chdir($cwd); 
session_start();