ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7_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 就会报这个错误。
<?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 上运行起来了。
OneAPM for PHP 能够深入到所有 PHP 应用内部完成应用性能管理 能够深入到所有 PHP 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理。
以上所述给大家分享了ECshop 迁移到 PHP7版本时遇到的兼容性问题,希望对大家有所帮助。
您可能感兴趣的文章:
- PHP扩展迁移为PHP7扩展兼容性问题记录

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











1. 기존 기기에서 WeChat 앱을 열고 오른쪽 하단의 [나]를 클릭한 후 [설정] 기능을 선택한 후 [채팅]을 클릭하세요. 2. [채팅기록 이동 및 백업]을 선택하고, [이전]을 클릭한 후 장치를 이동하려는 플랫폼을 선택하세요. 3. [이전할 채팅 선택]을 클릭하거나, 좌측 하단의 [모두 선택]을 클릭하거나, 채팅 기록을 직접 선택하세요. 4. 선택한 후 오른쪽 하단의 [시작]을 클릭하여 새 기기를 사용하여 이 WeChat 계정에 로그인합니다. 5. 그런 다음 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요. 사용자는 마이그레이션이 완료될 때까지 기다리면 됩니다.

GitLab에서 프로젝트를 마이그레이션하고 통합하는 방법 소개: 소프트웨어 개발 프로세스에서 프로젝트 마이그레이션 및 통합은 중요한 작업입니다. 널리 사용되는 코드 호스팅 플랫폼인 GitLab은 프로젝트 마이그레이션 및 통합을 지원하는 일련의 편리한 도구와 기능을 제공합니다. 이 기사에서는 GitLab의 프로젝트 마이그레이션 및 통합을 위한 구체적인 단계를 소개하고 독자의 이해를 돕기 위해 몇 가지 코드 예제를 제공합니다. 1. 프로젝트 마이그레이션 프로젝트 마이그레이션은 기존 코드베이스를 소스코드 관리 시스템에서 GitLab으로 마이그레이션하는 것입니다.

많은 사용자가 컴퓨터를 작동할 때 정지되거나 블루 스크린을 경험하게 됩니다. 현재 가장 안정적인 win10 버전을 찾아야 합니다. 전반적으로 사용이 매우 쉽고 일상적인 사용이 더 원활해집니다. 역사상 가장 안정적인 win10 버전 1. Win10 정품 오리지널 시스템. 여기서 사용자는 간단한 조작을 사용할 수 있습니다. 시스템은 최적화되었으며 강력한 안정성, 보안 및 호환성을 갖추고 있습니다. 2. 러시아어 마스터. streamlined win10 버전은 엄격하게 간소화되었으며 불필요한 기능과 서비스가 많이 삭제되었습니다. 효율화 후에는 시스템의 CPU 및 메모리 사용량이 낮아지고 실행 속도가 빨라집니다. 3. Win10 Lite Edition 1909는 하드웨어 모델이 서로 다른 여러 컴퓨터에 설치됩니다.

PHP 7.0에서 설치된 플러그인이 표시되지 않는 문제를 해결하려면: 플러그인 구성을 확인하고 플러그인을 활성화하세요. 구성 변경 사항을 적용하려면 PHP를 다시 시작하세요. 플러그인 파일 권한이 올바른지 확인하세요. 플러그인이 올바르게 작동하도록 하려면 누락된 종속성을 설치하세요. 다른 모든 단계가 실패하면 PHP를 다시 빌드하세요. 다른 가능한 원인으로는 호환되지 않는 플러그인 버전, 잘못된 버전 로드 또는 PHP 구성 문제 등이 있습니다.

레거시 C++ 애플리케이션을 클라우드로 이동하는 가장 좋은 방법: 플랫폼 변경: 애플리케이션 코드를 클라우드 네이티브 플랫폼(예: Kubernetes)으로 마이그레이션하고 클라우드 서비스를 활용합니다. 클라우드화: 코드 리팩토링 없이 클라우드 플랫폼에 애플리케이션을 배포하고 클라우드 서비스를 활용합니다.

1. 기존 단말기에서 "나" → "설정" → "채팅" → "채팅기록 이전 및 백업" → "이전"을 클릭하세요. 2. 마이그레이션할 대상 플랫폼 장치를 선택하고 마이그레이션할 채팅 기록을 선택한 후 "시작"을 클릭합니다. 3. 새 기기에서 동일한 WeChat 계정으로 로그인하고 QR 코드를 스캔하여 채팅 기록 마이그레이션을 시작하세요.

기존 기기에서 WeChat을 열고 '채팅 기록 마이그레이션 및 백업'을 선택한 후 안내에 따라 사용자는 채팅 기록을 새 기기로 마이그레이션할 수 있습니다. 마이그레이션 프로세스에는 마이그레이션해야 하는 채팅 선택, QR 코드 스캔 및 마이그레이션이 완료될 때까지 기다리는 작업이 포함됩니다.

PHP 서버 환경에 대한 일반적인 솔루션에는 올바른 PHP 버전이 설치되어 있는지, 관련 파일이 모듈 디렉터리에 복사되었는지 확인하는 것이 포함됩니다. SELinux를 일시적으로 또는 영구적으로 비활성화합니다. 필요한 확장이 추가되고 올바르게 설정되었는지 확인하려면 PHP.ini를 확인하고 구성하십시오. PHP-FPM 서비스를 시작하거나 다시 시작합니다. 해결 문제에 대해서는 DNS 설정을 확인하세요.
