Maison > Article > développement back-end > Problèmes de compatibilité rencontrés lors de la migration d'ECshop vers la version PHP7
Récemment, un internaute m'a interrogé sur une erreur lors de l'installation d'ecshopv2.7.3 sur PHP7. Après un long moment, je n'ai pas trouvé la raison. Ici, l'éditeur de Script House va analyser les raisons de ce problème
.Sur PHP7 Lors de l'installation d'ECShop V2.7.3, un message d'erreur apparaît !
Obsolète : les méthodes portant le même nom que leur classe ne seront pas des constructeurs dans une future version de PHP ; ECS a un constructeur obsolète dans /usr/local/nginx/html/ecshop/upload/includes/cls_ecshop. php en ligne 25
La raison de cette erreur est que PHP7 ne prend plus en charge la méthode de construction du même nom que la classe. La méthode de construction utilise uniformément __construct(), comme la méthode d'écriture suivante PHP7 Cette erreur sera signalée.
<?php class foo { function foo() { echo 'I am the constructor'; } } ?>
De retour à ecshop, jetons un œil à la ligne 25 du fichier cls_ecshop.php. Comme suit
Effectivement, il existe une méthode constructeur avec le même nom que la classe Nous avons changé la méthode constructeur ECS en __construct,
La raison de cette erreur est l'appel statique de méthodes non statiques, comme le suivant Le code signalera cette erreur
<?php class foo { function bar() { echo 'I am not static!'; } } foo::bar(); ?>Il est également très simple de modifier la méthode, soit de changer la méthode en méthode statique, ou modifiez l'appel en un appel de méthode non statique. Jetons un coup d'œil aux 31 lignes de code du fichier lib_installer.php qui ont signalé l'erreur
La deuxième méthode de modification consiste à utiliser des appels non statiques et à modifier les 31 lignes de code dans lib_installer.php
Ces deux méthodes All peuvent résoudre le problème. En revenant à la deuxième page des étapes d'installation d'ecshop, le message d'erreur a disparu.
La prochaine tragédie est que PHP7 ne prend pas en charge l'API MySQL d'origine. PHP7 prend en charge une meilleure API Mysqli et l'API pdo_mysql, donc ecshop ne change pas le fonctionnement de MySQL. L'API ne peut pas fonctionner sur PHP7.
OneAPM pour PHP peut approfondir toutes les applications PHP pour compléter la gestion des performances des applications. Il peut approfondir toutes les applications PHP pour compléter la gestion et la surveillance des performances des applications. y compris les performances au niveau du code, l'identification et le traçage rapides des goulots d'étranglement des performances, la surveillance de l'expérience utilisateur réelle, la surveillance des serveurs et la gestion de bout en bout des performances des applications.
Ce qui précède a partagé avec vous les problèmes de compatibilité rencontrés lors de la migration d'ECshop vers la version PHP7. J'espère que cela sera utile à tout le monde.
Recommandations associées :
Solution au dossier temporaire introuvable dans le téléchargement PHPCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!