ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7
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扩展兼容性问题记录

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



1. Buka aplikasi WeChat pada peranti lama, klik [Saya] di penjuru kanan sebelah bawah, pilih fungsi [Settings] dan klik [Chat]. 2. Pilih [Chat History Migration and Backup], klik [Migrate], dan pilih platform yang anda ingin pindahkan peranti. 3. Klik [Pilih sembang untuk dipindahkan], klik [Pilih semua] di penjuru kiri sebelah bawah, atau pilih rekod sembang sendiri. 4. Selepas memilih, klik [Mula] di sudut kanan bawah untuk log masuk ke akaun WeChat ini menggunakan peranti baharu. 5. Kemudian imbas kod QR untuk mula memindahkan rekod sembang Pengguna hanya perlu menunggu pemindahan selesai.

Linux dan Docker: Bagaimana untuk memindahkan dan menyegerakkan bekas merentas hos? Ringkasan: Docker ialah teknologi kontena popular yang menyediakan penyelesaian virtualisasi yang ringan. Dalam persekitaran berbilang hos, adalah keperluan yang sangat biasa untuk memindahkan dan menyegerakkan bekas merentas hos. Artikel ini akan memperkenalkan cara menggunakan Linux dan Docker untuk melaksanakan penghijrahan silang hos dan penyegerakan bekas, dan menyediakan beberapa kod sampel untuk rujukan. Pengenalan Peningkatan teknologi kontena menjadikan penggunaan aplikasi dan migrasi lebih fleksibel dan cekap. pada berbilang hos

Ramai pengguna akan mengalami pembekuan atau skrin biru semasa mengendalikan komputer Pada masa ini, kita perlu mencari versi win10 yang paling stabil untuk beroperasi Secara keseluruhannya, ia sangat mudah digunakan dan boleh menjadikan penggunaan harian anda lebih lancar. Versi win10 yang paling stabil dalam sejarah 1. Sistem asal tulen Win10 Di sini pengguna boleh menggunakan operasi yang mudah dan mempunyai kestabilan yang kuat, keselamatan dan keserasian diperkemas Versi win10 telah diperkemas dengan ketat dan banyak fungsi dan perkhidmatan yang tidak perlu telah dipadamkan. Selepas diperkemas, sistem mempunyai penggunaan CPU dan memori yang lebih rendah serta berjalan lebih pantas. 3. Win10 Lite Edition 1909 dipasang pada berbilang komputer dengan model perkakasan yang berbeza.

Cara memindahkan dan menyepadukan projek dalam GitLab Pengenalan: Dalam proses pembangunan perisian, migrasi dan penyepaduan projek adalah tugas penting. Sebagai platform pengehosan kod yang popular, GitLab menyediakan satu siri alatan dan fungsi yang mudah untuk menyokong penghijrahan dan penyepaduan projek. Artikel ini akan memperkenalkan langkah khusus untuk penghijrahan dan penyepaduan projek dalam GitLab dan menyediakan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik. 1. Penghijrahan projek Penghijrahan projek adalah untuk memindahkan pangkalan kod sedia ada daripada sistem pengurusan kod sumber kepada GitLab

Untuk menyelesaikan pemalam yang tidak menunjukkan isu yang dipasang dalam PHP 7.0: Semak konfigurasi pemalam dan dayakan pemalam. Mulakan semula PHP untuk menggunakan perubahan konfigurasi. Semak kebenaran fail pemalam untuk memastikan ia betul. Pasang kebergantungan yang hilang untuk memastikan pemalam berfungsi dengan betul. Jika semua langkah lain gagal, bina semula PHP. Punca lain yang mungkin termasuk versi pemalam yang tidak serasi, memuatkan versi yang salah atau isu konfigurasi PHP.

1. Pada peranti lama, klik "Saya" → "Tetapan" → "Sembang" → "Penghijrahan dan Sandaran Sejarah Sembang" → "Berhijrah". 2. Pilih peranti platform sasaran untuk dipindahkan, pilih rekod sembang untuk dipindahkan dan klik "Mula". 3. Log masuk dengan akaun WeChat yang sama pada peranti baharu dan imbas kod QR untuk memulakan penghijrahan sejarah sembang.

Cara terbaik untuk mengalihkan aplikasi C++ warisan ke awan: Penyamaran semula: Pindahkan kod aplikasi ke platform asli awan (seperti Kubernetes) dan memanfaatkan perkhidmatan awan. Cloudization: Sebarkan aplikasi pada platform awan dan gunakan perkhidmatan awan tanpa pemfaktoran semula kod.

Dengan membuka WeChat pada peranti lama, memilih "Penghijrahan dan Sandaran Sejarah Sembang" dan mengikut gesaan, pengguna boleh memindahkan sejarah sembang mereka ke peranti baharu. Proses migrasi melibatkan pemilihan sembang yang perlu dipindahkan, mengimbas kod QR dan menunggu migrasi selesai.
