【问题标题】:Original PHP Session with Zend Framework 2Zend Framework 2 的原始 PHP 会话
【发布时间】:2014-11-20 17:19:40
【问题描述】:

Zend Framework 2 不允许我使用原始 PHP 会话。我正在使用 zend 框架 2 的公共文件夹中的响应式文件管理器应用程序。每当文件管理器的对话框打开时,我都会收到以下错误。

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 不干扰文件管理器会话。

【问题讨论】:

    标签: php session zend-framework2


    【解决方案1】:

    这不是 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();
    

    【讨论】:

    • 非常感谢。当我加载课程时它起作用了。我将为任何想要了解有关如何自动加载的更多信息的人留下一个链接,这对您的答案有点解释。 stackoverflow.com/questions/2325884/…
    【解决方案2】:

    为了与其他第 3 方库合作并跨可能与 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多