ZF2 + Composer + Jelastic 中的教义

Posted

技术标签:

【中文标题】ZF2 + Composer + Jelastic 中的教义【英文标题】:ZF2 + Composer + Doctrine in Jelastic 【发布时间】:2015-02-17 12:36:24 【问题描述】:

我在使用 Doctrine 和 Jelastic 时遇到问题。

显示问题:

“警告:require_once(/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php”):无法打开流:/var/www/webroot/ROOT 中没有这样的文件或目录/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php 第 64 行致命错误:require_once (): Failed opening require ' /vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations .php' (include_path = '.:/usr/share/pear') 在 /var/www/webroot/ROOT/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php 第 64 行。

以下网址问题:http://temprafesta.jelasticls.com.br/

我已经通过 SSH 安装了 ZF2 + Composer 及其依赖项。成功发生,但是当我与教义约会时出现此错误。

有人可以帮忙吗?

亲切的问候, 艾伦。

【问题讨论】:

【参考方案1】:

从给定的错误中可以清楚地看出,基本路径没有被考虑在内。可能这是 Doctrine 中的一个错误。您是否能够查看另一个版本的 Doctrine?

【讨论】:

我通过 SSH Composer 安装了 Doctrine,得到了最新版本。奇怪的是本地工作,但是当我迁移到服务器时,Doctrine 出现了这个错误。 数字中的“最新版本”是多少?究竟是哪个版本?【参考方案2】:

嗯,发出该错误的文件就是这个:

https://github.com/doctrine/annotations/blob/master/lib/Doctrine/Common/Annotations/AnnotationRegistry.php#L64

/**
 * Registers file.
 *
 * @param string $file
 *
 * @return void
 */
static public function registerFile($file)

    require_once $file;

我不知道为什么有人要调用这个方法,但只有两种情况:要么是 Doctrine 内部的代码,要么是你的代码。

我没有找到太多教义调用这个函数的地方,但听起来就是这样:

https://github.com/doctrine/doctrine2/blob/664b6bf4c52c893011ec4b7b3c99e94399ed0316/lib/Doctrine/ORM/Configuration.php#L153

现在的问题是:为什么__DIR__ 被评估为/vendor/doctrine/orm/lib/Doctrine/ORM?这是没有意义的,除非 PHP 因为任何花哨的文件系统的东西而感到困惑。我建议深入研究这部分并在那里添加一些调试输出,以确保一切都按预期工作。我认为没有。

【讨论】:

以上是关于ZF2 + Composer + Jelastic 中的教义的主要内容,如果未能解决你的问题,请参考以下文章

Zend Framework 2 使用 composer 自动加载第三方库

Jelastic Tomcat Console.Log 文件

如何在 HostGator 上使用 PHP Composer

在 Jelastic 上更改 PostgreSQL 节点上的 shared_buffers 值

如何在jelastic中设置docker run选项,特别是max file descriptors(ulimit)

Jelastic MySQL 集群和数据库用户