2014-09-25 110 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();