Cakephp与PHP7

7

我能在PHP7上运行CakePHP 1.3吗?我需要将其迁移到PHP7,但托管中有一个使用CakePHP 1.3的项目,需要知道在这个PHP版本中运行此项目是否存在任何风险。


我认为这不会起作用,因为最新的cakePHP版本是1.3。 - Daan
只有实际运行才能告诉你它是否有效。即使 Cake 应该是兼容的,项目中的代码可能并不兼容。 - deceze
谢谢您的评论,不幸的是我无法在另一个环境中运行这个项目,并且需要知道是否已经有在版本7中运行此版本CakePHP的经验。 - Alejandro
3个回答

9
如果你仍在寻找适用于PHP7的CakePHP 1.3版本,那么你很幸运!我已经将 CakePHP 1.3.21升级到PHP 7.3,你可以在GitHub上查看。请注意阅读自述文件,因为它需要对你自己的代码进行一些更改!

9

很不幸,CakePHP 1.3与PHP7的兼容性并不好。我正在一个使用CakePHP 1.3的旧项目上工作,但我的系统升级到了PHP7。在CakePHP 1.3的核心代码中有很多这样的问题

在修改了这些问题之后,我遇到了下一批错误,于是我回退并推迟了升级。

因此,如果有一个CakePHP 1.3项目,升级到PHP7会相当冒险。


1
我终于升级了我的PHP。对我有用的是通过PHP-FPM和NGINX运行不同版本的PHP。我主要是按照这个指南来让事情正常工作的链接 - Jan
@Ale 对不起,我之前表述不是很清楚。我在系统上安装了第二个 PHP(具体为 PHP 5.6 版本),因此我现在同时运行着 PHP 7 和 5.6。对于我的使用 CakePHP 1.3 的项目,我更改了 nginx 网络服务器以使用旧版 PHP。因此在我的 nginx.config 文件中,我设置了类似 upstream oldphp { server unix:/run/php-fpm/php-fpm5.6.sock; } 的内容,而在我的 CakePHP 1.3 项目的网络服务器配置中,我使用了 fastcgi_pass oldphp; - Jan
啊,好的,我现在明白了。 - Alejandro
1
我成功地让我的CakePHP 1.3项目在PHP 7下工作。我唯一需要做的更改是将“String”类及其所有用法重命名为其他名称。 - Petar Vasilev
@PetarVasilev,你能否添加一个更详细的答案? - icc97
@icc97,我已经添加了一个答案。 - Petar Vasilev

1

我需要将一个基于CakePHP 1.3的项目迁移到PHP7,唯一需要做的就是找到"String"类,并使用PhpStorm的重命名所有出现的功能将其重命名为"String_Renamed",这样就可以解决错误,之后一切都正常工作了。自那以后我没有遇到任何问题。


4
我很惊讶,因为cake/libs/configure.php文件包含类似'$Folder =& new Folder();'的代码,并且由于语法错误而抛出致命错误。 - Denis Valdenaire aka Joe Linux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接