목차
ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7
您可能感兴趣的文章:
php教程 php手册 ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7

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

Jun 13, 2016 am 08:46 AM
ecshop php7 PHP 프로그래머 호환 가능 이주하다

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

在 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 就会报这个错误。

<&#63;php 
class foo { 
function foo() {
echo 'I am the constructor';
}
}
&#63;>
로그인 후 복사

回到 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

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

<&#63;php 
class foo { 
function bar() {
echo 'I am not static!';
}
}
foo::bar(); 
&#63;>
로그인 후 복사

修改方法也很简单,要么将该方法改为静态方法,要么将该调用改为非静态调用。 我们看一下报错的文件 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 上运行起来了。

 

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

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

您可能感兴趣的文章:

  • PHP扩展迁移为PHP7扩展兼容性问题记录
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

WeChat 채팅 기록을 새 휴대폰으로 마이그레이션하는 방법 WeChat 채팅 기록을 새 휴대폰으로 마이그레이션하는 방법 Mar 26, 2024 pm 04:48 PM

WeChat 채팅 기록을 새 휴대폰으로 마이그레이션하는 방법

Linux 및 Docker: 호스트 간에 컨테이너를 마이그레이션하고 동기화하는 방법은 무엇입니까? Linux 및 Docker: 호스트 간에 컨테이너를 마이그레이션하고 동기화하는 방법은 무엇입니까? Jul 29, 2023 pm 02:52 PM

Linux 및 Docker: 호스트 간에 컨테이너를 마이그레이션하고 동기화하는 방법은 무엇입니까?

가장 안정적인 Win10 버전 가장 안정적인 Win10 버전 Dec 25, 2023 pm 07:58 PM

가장 안정적인 Win10 버전

WeChat 채팅 기록을 다른 휴대폰으로 전송하는 방법 WeChat 채팅 기록을 다른 휴대폰으로 전송하는 방법 May 08, 2024 am 11:20 AM

WeChat 채팅 기록을 다른 휴대폰으로 전송하는 방법

GitLab에서 프로젝트를 마이그레이션하고 통합하는 방법 GitLab에서 프로젝트를 마이그레이션하고 통합하는 방법 Oct 27, 2023 pm 05:53 PM

GitLab에서 프로젝트를 마이그레이션하고 통합하는 방법

php7에서 tcp 포트가 작동하지 않는 것을 감지했을 때 문제를 해결하는 방법 php7에서 tcp 포트가 작동하지 않는 것을 감지했을 때 문제를 해결하는 방법 Mar 22, 2023 am 09:30 AM

php7에서 tcp 포트가 작동하지 않는 것을 감지했을 때 문제를 해결하는 방법

php7.0에 플러그인이 설치되어 있는데 여전히 설치되지 않은 것으로 표시되면 어떻게 해야 합니까? php7.0에 플러그인이 설치되어 있는데 여전히 설치되지 않은 것으로 표시되면 어떻게 해야 합니까? Apr 02, 2024 pm 07:39 PM

php7.0에 플러그인이 설치되어 있는데 여전히 설치되지 않은 것으로 표시되면 어떻게 해야 합니까?

Linux 시스템에서 서버 마이그레이션을 수행하는 방법 Linux 시스템에서 서버 마이그레이션을 수행하는 방법 Jun 18, 2023 pm 10:01 PM

Linux 시스템에서 서버 마이그레이션을 수행하는 방법

See all articles