手机版

ECshop迁移到PHP7时遇到的兼容性问题

时间:2021-09-17 来源:互联网 编辑:宝哥软件园 浏览:

在PHP7上安装ECShop V2.7.3时报告错误!

与类同名的方法在未来版本的PHP中将不会成为构造函数;ECS在第25行的/usr/local/nginx/html/ECS hop/upload/includes/cls _ ECS hop . PHP中有一个不推荐使用的构造函数

出现此错误的原因是PHP7不再支持与类名相同的构造方法,构造方法统一使用__construct()。例如,PHP7将以下列方式报告此错误。

?php类foo { function foo() {echo '我是构造函数';}}?回到ecshop,让我们看看cls_ecshop.php文件的25行。如下

果然有和类名一样的构造方法,所以我们把构造方法ECS修改为__construct。

回到ecshop的安装主页刷新,发现没有错误。

单击“下一步”报告错误。

第31行的/usr/local/nginx/html/ECS hop/upload/install/includes/lib _ installer . PHP中不应静态调用非静态方法cls _ image:gd _ version()

出现此错误的原因是对非静态方法的静态调用,例如,下面的代码将报告此错误。

?php类foo { function bar() {echo '我不是静态的!';} } foo : bar();通过将方法更改为静态方法或者将调用更改为非静态调用,也很容易修改方法。让我们看看报告错误的文件lib_installer.php的31行。

还有cls图像类文件的gd version()方法,说明没有使用static关键字。

在第一次修改中,将方法修改为静态方法,并在方法之前添加关键字public static。

在第二种修改模式下,通过在非静态模式下调用来修改lib_installer.php的31行代码。

这两种方法都能解决问题。回到ecshop安装过程的第二页,错误提示已经消失。

遗憾的是,PHP7并不支持原来的mysql api,PHP7支持更好的mysql api和pdo_mysql api,所以在不改变mysql API的情况下,ecshop无法在PHP7上运行。

针对PHP的OneAPM可以深入所有PHP应用程序,完成应用程序性能管理和监控,包括代码级性能问题的可见性、性能瓶颈的快速识别和跟踪、真实用户体验监控、服务器监控和端到端应用程序性能管理。

以上分享了ECshop迁移到PHP7时遇到的兼容性问题,希望对大家有所帮助。

版权声明:ECshop迁移到PHP7时遇到的兼容性问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。