加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 03:08:08 所属栏目:PHP教程 来源:网络整理
导读:《:ECshop 迁移到 PHP7版本时遇到的兼容性问题》要点: 本文介绍了:ECshop 迁移到 PHP7版本时遇到的兼容性问题,希望对您有用。如果有疑问,可以联系我们。 在 PHP7 上安装 ECShop V2.7.3时,报错! PHP编程 Deprecated: Methods with the same name as thei

《:ECshop 迁移到 PHP7版本时遇到的兼容性问题》要点:
本文介绍了:ECshop 迁移到 PHP7版本时遇到的兼容性问题,希望对您有用。如果有疑问,可以联系我们。

在 PHP7 上安装 ECShop V2.7.3时,报错!PHP编程

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ECS has a deprecated constructor in /usr/local/nginx/html/ecshop/upload/includes/cls_ecshop.php on line 25PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?PHP编程

这个报错的原因是 PHP7 不再支持与类名相同的构造办法,构造办法统一使用 __construct(),比如下面的写法 PHP7 就会报这个错误.PHP编程

<?php 
class foo { 
function foo() {
echo 'I am the constructor';
}
}
?>

回到 ecshop 我们看一下 cls_ecshop.php 文件的25行.如下PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

果然有与类名相同的构造办法,我们将构造办法 ECS 修改为 __construct,PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

回到 ecshop 的安装首页刷新,发现已经没有错误了.PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

单击下一步,报错PHP编程

Deprecated: Non-static method cls_image::gd_version() should not be called statically in /usr/local/nginx/html/ecshop/upload/install/includes/lib_installer.php on line 31PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?PHP编程

这个报错的原因是静态调用非静态办法,比如下面的代码就会报这个错误PHP编程

<?php 
class foo { 
function bar() {
echo 'I am not static!';
}
}
foo::bar(); 
?>

修改办法也很简单,要么将该办法改为静态办法,要么将该调用改为非静态调用. 我们看一下报错的文件 lib_installer.php 的 31行代码PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

还有cls image类文件的 gd version() 办法,可以看到的确没有使用 static关键字PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

第一种修改方式,将该办法修改为静态办法,在办法前加关键字 public staticPHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

第二种修改方式,采用非静态方式的调用,修改lib_installer.php 的 31行代码PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?PHP编程

这两种办法都可以解决问题. 回到ecshop的安装步骤第二页,错误提示已经不见了.PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

再下一步悲剧了,PHP7 不支持原始的 mysql api 了,PHP7 支持更好的 Mysqli API 和 pdo_mysql api 所以 ecshop 不改掉操作 mysql 的 api 是无法在 PHP7 上运行起来了.PHP编程

:ECshop 迁移到 PHP7版本时遇到的兼容性问题?
PHP编程

OneAPM for PHP 能够深入到所有 PHP 应用内部完成应用性能管理 能够深入到所有 PHP 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理.PHP编程

以上所述给大家分享了ECshop 迁移到 PHP7版本时遇到的兼容性问题,希望对大家有所赞助.PHP编程

编程之家培训学院每天发布《:ECshop 迁移到 PHP7版本时遇到的兼容性问题》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读