您现在的位置是:首页 > cms教程 > Ecshop商城教程Ecshop商城教程
ecshop在PHP7时遇到的兼容报错的解决方法
以亦2025-01-14Ecshop商城教程已有人查阅
导读在 PHP7 上安装 ECShop V2.7.3时,报错!Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ECS has a deprecate
在 PHP7 上安装 ECShop V2.7.3时,报错!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 25
这个报错的原因是 PHP7 不再支持与类名相同的构造方法,构造方法统一使用 __construct(), 比如下面的写法 PHP7 就会报这个错误。
果然有与类名相同的构造方法,我们将构造方法 ECS 修改为 __construct,
回到 ecshop 的安装首页刷新,发现已经没有错误了。
单击下一步,报错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 31
这个报错的原因是静态调用非静态方法,比如下面的代码就会报这个错误
我们看一下报错的文件 lib_installer.php 的 31行代码
还有cls_image类文件的 gd_version() 方法,可以看到的确没有使用 static关键字
第一种修改方式,将该方法修改为静态方法,在方法前加关键字 public static
第二种修改方式,采用非静态方式的调用,修改lib_installer.php 的 31行代码
这两种方法都可以解决问题。
回到ecshop的安装步骤第二页,错误提示已经不见了。
再下一步悲剧了,PHP7 不支持原始的 mysql api 了,PHP7 支持更好的 Mysqli API 和 pdo_mysql api所以 ecshop 不改掉操作 mysql 的 api 是无法在 PHP7 上运行起来了。
这个报错的原因是 PHP7 不再支持与类名相同的构造方法,构造方法统一使用 __construct(), 比如下面的写法 PHP7 就会报这个错误。
<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>
回到 ecshop 我们看一下 cls_ecshop.php 文件的25行。如下果然有与类名相同的构造方法,我们将构造方法 ECS 修改为 __construct,
回到 ecshop 的安装首页刷新,发现已经没有错误了。
单击下一步,报错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 31
这个报错的原因是静态调用非静态方法,比如下面的代码就会报这个错误
<?php
class foo {
function bar() {
echo 'I am not static!';
}
}
foo::bar();
?>
修改方法也很简单,要么将该方法改为静态方法,要么将该调用改为非静态调用。我们看一下报错的文件 lib_installer.php 的 31行代码
还有cls_image类文件的 gd_version() 方法,可以看到的确没有使用 static关键字
第一种修改方式,将该方法修改为静态方法,在方法前加关键字 public static
第二种修改方式,采用非静态方式的调用,修改lib_installer.php 的 31行代码
这两种方法都可以解决问题。
回到ecshop的安装步骤第二页,错误提示已经不见了。
再下一步悲剧了,PHP7 不支持原始的 mysql api 了,PHP7 支持更好的 Mysqli API 和 pdo_mysql api所以 ecshop 不改掉操作 mysql 的 api 是无法在 PHP7 上运行起来了。
本文标签:
很赞哦! ()
上一篇:ecshop搜索模块代码介绍
下一篇:ecshop主体结构配送方式
图文教程
ecshop购买记录增加显示更多购买信息的方法
ecshop的购买记录无论程序还是ECSHOP模板都默认只显示用户名、购买时间、购买数量以及成交与否这几项信息。实际使用过程发现,其实只显示这四项信息不够友好
ecshop实现不同文章分类下的文章详情页使用不同的详情页模板
ECSHOP实现不同文章分类下的文章详情页使用不同的详情页模板使用ECSHOP系统做网站时,文章系统功能比较单一
VIP会员才能下载ecshop文章页附件的实现方法
经常看到有人问这个,今天三个太阳就整理了下共享给大家,下面就以官方2.7.2默认模板为基础来讲述一下“如何在文章详情页限制只有VIP会员才能下载相关附件”
ecshop商品加入购物车仿淘宝效果代码示例
ECSHOP商品加入购物车仿淘宝效果。下来我把我的做法贴出来网友们做参考有不对的地方多多指正。
相关源码
-
(响应式)蓝色智能摄像头安防防盗电子设备免费pbootcms源码下载这是一款针对智能安防行业特点设计的网站模板,采用蓝色系配色方案,体现科技感和安全性。模板包含产品展示、解决方案、技术支持和新闻中心等核心模块,能够全面展示智能安防设备的技术特点和行业应用。查看源码 -
(PC+WAP)蓝色钢结构机械五金工程建筑基建营销型pbootcms模板下载于PbootCMS开发的钢结构与工程机械专用模板,助力企业构建专业级产品展示平台;模板内置工程案例展示、产品参数对照表等专业模块,预设项目进度、施工方案等建筑行业专属栏目查看源码 -
pbootcms(自适应)SEO优化排名服务公司网站模板核心定位为SEO排名服务商打造的营销型网站框架,集成PbootCMS开源系统的高效管理能力与SEO最佳实践方案,助力企业快速建立专业的技术服务形象。查看源码 -
(自适应响应式)HTML5电脑手机电子数码产品配件pbootcms模板下载本模板为电脑配件、手机配件及数码周边产品企业设计,基于PbootCMS内核开发。采用现代化响应式布局,适配各类移动设备,能够专业展示各类电子产品配件参数、应用场景和技术特点。模板内置多种产品展示模块,满足不同类型配件企业的展示需求。查看源码 -
(自适应响应式)环保水净化处理设备阀门等网站源码下载基于PbootCMS内核开发的响应式模板,为水处理设备、空气净化器等环保企业设计,自适应手机端浏览。通过简洁高效的后台管理系统,助力环保科技企业快速建立专业在线展示平台。查看源码 -
pbootcms源码宠物类网站源码下载(自适应多端)为宠物装备商店、宠物食品及用品企业打造的营销型模板,基于PbootCMS内核深度开发。采用响应式设计实现PC与移动端适配,PHP7.0+高性能架构支持MySQL/SQLite双数据库查看源码
| 分享笔记 (共有 篇笔记) |
