1

我正在尝试使用 Quercus 作为概念证明来设置一个非常基本的 Zend Framework 2 应用程序以在 Resin 上运行。我遇到了一些问题,我找不到任何在 Resin 上运行的 ZF2 应用程序的开源示例。

我已经设法让 PHP 正常工作,但是在尝试加载我的 Zend 应用程序时,我看到了关于 PHP SPL 扩展通常包含的功能的错误。Quercus 似乎没有完全实现 SPL,所以如果是这种情况,希望有一个我可以使用的解决方法。

我看到的第一个错误是关于缺少的功能:spl_object_hash. 我为这个方法写了一个占位符来绕过这个错误(我知道这很糟糕):

if (!function_exists('spl_object_hash')) {
    function spl_object_hash() {
        usleep(1);
        return md5(microtime());
    }
}

接下来的两个错误是关于缺少的类:SplPriorityQueueSplStack. 我也为它们写了一些占位符,参考这里的文档:http: //us3.php.net/manual/en/book.spl.php。这些占位符类基本上只是数组的包装器。

我现在遇到的错误是:

.../library/Zend/ServiceManager/ServiceManager.php:456:致命错误:未捕获类型为“Zend\ServiceManager\Exception\ServiceNotFoundException”的异常,消息为“Zend\ServiceManager\ServiceManager::get 无法获取或创建应用程序位置的实例[.../library/Zend/ServiceManager/ServiceManager.php:456]'

我真的不知道从这里去哪里。

作为参考,我正在使用:

4

2 回答 2

0

我将此问题复制到 Caucho Quercus Google Group,并收到了此回复

目前看来,使用 Resin 和 Quercus 运行 Zend Framework 2 应用程序是不可能的。

即将发布的 4.0.39 版本†</sup>spl_object_hash实现了缺少的功能。

此外,Caucho 的 Nam Nguyen 代表我提交了以下错误报告:

http://bugs.caucho.com/view.php?id=5623

于 2014-07-18T14:31:16.223 回答
0

Resin 是为运行 Java 应用程序而设计的 Web 服务器。ZF2 正在使用 PHP + 一些 PHP 扩展。PHP 的 Quercus 实现可能不支持这些扩展。您可能需要一个带有 Apache 或 Nginx 的 Web 服务器。

于 2014-02-21T01:03:06.730 回答