php 5.4 上的 Symfony2

Symfony2 on php 5.4

我需要将我的 Symfony2 网站更改为新服务器,我注意到新服务器当前安装的是 php 5.4,而 Symfony2 至少需要 5.5.9。通过做一些测试,他们发生了一些错误,例如:

php.CRITICAL: Fatal Parse Error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) {"type":4,"file":"/home/admin/web/websitename.com/app/vendor/doctrine/common/lib/Doctrine/Common/Proxy/ProxyGenerator.php","line":62,"level":6143,"stack":[]} []

这应该是版本的产物。我想知道是否有人遇到过这个问题并在 php 5.4 中安装了 Symfony2,可能是该框架的旧版本。我知道最简单的方法是更新 php 的版本,但目前这不是一个选项。

提前致谢

将 Symfony2 项目移动到另一台具有不同版本 php 的服务器(尤其是当它是较低版本时)会导致像您这样的错误。

尝试删除您的 vendor 目录,也许备份您的 composer.lock 并通过 运行 composer install 重做全新安装。

此外,首先要手动删除缓存目录中的所有内容并验证服务器目录的权限。

因为问题似乎出在 doctrine common bundle 中,我尝试使用它的一些旧版本,寻找与 php 5.4 兼容的版本,特别是当函数 ::class 未被使用时的版本.最后它与下一个组合一起工作:

"doctrine/common": "2.4.2",
"doctrine/dbal": "2.4.4",
"doctrine/orm": "2.4.7",
"doctrine/doctrine-bundle": "~1.2"

更新作曲家并完成。