【问题标题】:Cakephp with PHP7Cakephp 与 PHP7
【发布时间】:2016-06-08 11:10:47
【问题描述】:

我可以用 PHP7 运行 CakePHP 1.3 吗?我必须迁移到 PHP7,但在托管中有一个 CakePHP 1.3 项目,需要知道如果我在这个版本的 PHP 中运行这个项目是否有任何风险。

【问题讨论】:

  • 我认为这不会起作用,因为最新的 cakePHP 版本是 1.3
  • 只有实际运行它才会告诉你它是否有效。即使 Cake 应该兼容,但项目中的代码可能不兼容。
  • 感谢您的cmets,很遗憾我无法在另一个环境中运行这个项目,需要知道是否已经有一些在版本7中运行这个版本的CakePHP的经验

标签: php cakephp-1.3 php-7


【解决方案1】:

不幸的是,CakePHP 1.3 与 PHP7 开箱即用并不真正兼容。我在 CakePHP 1.3 的一个旧项目上工作,我的系统升级到 PHP7。 CakePHP 1.3 的核心有很多these

更改这些后,我遇到了下一批错误,之后我回滚并推迟升级。

所以回答这个问题,如果有 CakePHP 1.3 项目,升级到 PHP7 会比较冒险。

【讨论】:

  • 我终于要升级我的 PHP 了。对我有用的是通过 PHP-FPM 和 NGINX 运行不同版本的 PHP。我遵循本指南主要是为了让事情顺利进行link
  • @Ale 抱歉,我不太清楚我做了什么。我在我的系统上第二次安装了 PHP(特别是 PHP 5.6)。所以我目前正在运行 PHP 7 和 5.6。对于使用 CakePHP 1.3 的项目,我将 nginx Web 服务器更改为使用旧版本的 PHP。因此,在我的 nginx.config 中,我有类似 upstream oldphp { server unix:/run/php-fpm/php-fpm5.6.sock; } 的内容,而在我的 CakePHP 1.3 项目的网络服务器配置中,我使用了 fastcgi_pass oldphp;
  • 嗯,我明白了
  • 我设法让我的 CakePHP 1.3 项目在 PHP 7 下运行。我要做的唯一更改是将“String”类及其所有用途重命名为其他名称。
  • @PetarVasilev 你能补充一个更详细的答案吗?
【解决方案2】:

如果您仍在寻找到 PHP7 的 CakePHP 1.3 端口,那么您很幸运!

我已经移植了CakePHP 1.3.21 to PHP 7.3,你可以在 GitHub 上查看。

请注意自述文件,因为它自然也需要更改您自己的代码!

【讨论】:

    【解决方案3】:

    我不得不将 CakePHP 1.3 项目迁移到 PHP7,我唯一做的就是找到“String”类,并使用 PhpStorm 的重命名所有出现的功能,我将它重命名为“String_Renamed”,修复了错误,之后一切正常。从那以后我没有任何问题。

    【讨论】:

    • 我很惊讶,因为 cake/libs/configure.php 包含类似 '$Folder =& new Folder();' 的代码- 并由于语法​​引发致命错误。
    猜你喜欢
    • 2016-08-09
    • 2016-10-23
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2018-08-27
    相关资源
    最近更新 更多