PHP 7 atteint le statut de bêta et de nombreux tests sont en cours. Étant donné que Magento a rattrapé son retard de "fonctionne uniquement sur PHP 5.3" à "entièrement compatible avec PHP 5.6", j'aimerais savoir à quel point ils envisagent la compatibilité de PHP 7 pour Magento 1.x ainsi que Magento 2.
J'ai trouvé ce billet d'Anna Filina où elle a trouvé un problème dans Magento 1.9.1 (inchangé dans la version 1.9.2), mais étant donné que Magento 1 ne comporte pas de tests unitaires, je ne pense pas qu'il s'agisse du seul problème.
La question est donc la suivante: la compatibilité de PHP 7 avec Magento 1 sera-t-elle assurée? Et comme Magento 2 a probablement déjà été testé sur PHP 7 (Merci aux tests automatisés!), Existe-t-il des problèmes connus?
Réponses:
Le 20 janvier 2016, Magento a annoncé officiellement que CE et EE 2.0.1 supportaient officiellement PHP 7.0.2.
Lien: https://magento.com/blog/technical/new-magento-20-resources-and-support-php7
la source
Si vous utilisez la version la plus récente, M CE 1.9.2.2, il existe une extension qui apportera la compatibilité totale à PHP 7: https://github.com/Inchoo/Inchoo_PHP7 . (Avertissement: je suis l'auteur, même s'il y a beaucoup d'aide de la part de la communauté.)
Il est également installable via Composer à partir de http://packages.firegento.com/ .
Toutes les incompatibilités mentionnées ici sont corrigées. Nous pensons qu'il y a peut-être encore quelques cas critiques, mais rien ne nous arrête. Les tests, les rapports de problème et les demandes d'extraction sont les bienvenus.
la source
Aucune idée sur PHP7, mais je suppose que la plupart des éléments sont toujours valables en PHP7; vous pouvez trouver plus d'informations dans le blog de Matthias Geniar
Je pense que la seule chose que nous pourrions avoir dans Magento est le
preg_replace()
modificateur eval, mais j'espère que non.A côté de cela, Magento expédié 1.9.2 avec un TAF mis à jour, vous pouvez trouver dans dev. Avec cela, vous devriez pouvoir exécuter de nombreux tests frontaux sur PHP7 et examiner le journal par la suite.
la source
Pas de commentaire sur Magento 1, mais Magento 2 a eu quelques problèmes avec les noms de classe comme "String". Il n'a pas fallu longtemps pour le réparer, mais cela n'a pas fonctionné immédiatement. Je m'attends à ce que Magento 2 soit corrigé, mais il se peut que ce ne soit pas encore le cas en raison d'autres priorités.
la source
C'est presque prêt. J'ai essayé de lancer un Magento 1.9.2.1 vierge avec PHP 7 RC1, ce qui a provoqué un crash instantané (erreur fatale) de Magento. Après avoir résolu ce problème, tout semblait fonctionner, à l'exception du backend, auquel je ne pouvais pas me connecter. Plus tard, il s’est avéré qu’il s’agissait d’un problème lié à la session qui pouvait être corrigé.
Brièvement:
L'erreur fatale peut être résolu en remplaçant
Mage_Core_Model_Layout
puis en changeant la ligne 555 à partir de :$out .= $this->getBlock($callback[0])->$callback[1]();
en
$out .= $this->getBlock($callback[0])->{$callback[1]}();
Le problème de la session peut être temporairement fixé en remplaçant
Mage_Core_Model_Session_Abstract_Varien
et réécrire legetData
,setData
,unsetData
,addFullNames
méthodes, donc partout où$this->_data
a été utilisé, il sera remplacé par$_SESSION
.Si quelqu'un est intéressé par la solution, vous pouvez la trouver ici .
la source
Varien_File_Uploader
, voir magento.stackexchange.com/questions/93066/…Magento2 est prêt pour PHP 7. L'adaptation du code à PHP7 a été effectuée et toutes les modifications sont disponibles dans la branche develop. Voir le numéro sur GitHub
En outre, la prise en charge de php 7 dans Magento1 nécessite des modifications incompatibles avec les versions antérieures et, à mon avis, ne sera pas prise en charge officiellement.
la source
Il y a un problème avec la façon dont Magento calcule le total général de la commande et applique les remises. Cela arrête également le paiement express Paypal, car les éléments de campagne ne correspondent pas au total général de la réduction.
Le problème semble être que le
Mage_Sales_Model_Config_Ordered::_compareTotals()
ne fonctionne pas de la même manière en PHP7 que PHP5, etuasort()
repose maintenant sur une relation transitive pour la commande, mais cela ne doit pas forcément être pour le total des commandes.Essayez d'utiliser: -
la source
Ce sont mes recherches que je veux partager avec vous sur les incompatibilités de magento php7. Actuellement, j'ai trouvé des endroits où le code devrait échouer à cause d'une syntaxe de variable uniforme.
Fichier: app / code / core / Mage / ImportExport / Modèle / Export / Entité / Produit / Type / Abstract.php
Méthode: overrideAttribute
Fichier: app / code / core / Mage / ImportExport / Modèle / Export / Entity / Customer.php
Méthode: filterAttributeCollection
Fichier: app / code / core / Mage / ImportExport / Modèle / Import / Uploader.php
Méthode: _validateFile
Fichier: app / code / core / Mage / Catalogue / Modèle / Produit / Link / Api / V2.php
Méthode: assigner
Fichier: app / code / core / Mage / Catalogue / Modèle / Produit / Link / Api / V2.php
Méthode: mise à jour
Fichier: lib / Varien / File / Uploader.php
Méthode: _validateFile
Fichier: app / code / core / Mage / Core / Model / Layout.php
Méthode: getOutput
la source
En plus des autres réponses liées à Magento 1:
Une incompatibilité PHP 7 dans
Zend_XmlRpc_Server
a été corrigée dans Zend Framework 1.12.12Toutes les versions antérieures à CE 1.9.2.2 / EE 1.14.2.2 utilisent une version plus ancienne de Zend Framework, des problèmes pourraient donc se poser si vous utilisez l'API XML-RPC de Magento.
la source
Vérifiez les fichiers de inchoo qui sont modifiés pour rendre M1 compatible avec PHP 7, il s’agit de modifications mineures dans quelques fichiers, mais le travail intelligent d’Inchoo. https://github.com/Inchoo/Inchoo_PHP7/tree/master/app/code/local/Inchoo/PHP7
la source
J'utilise Magento 2 CE version 2.1.4 et fonctionne bien.
magento \ app \ bootstrap.php
la source
La réponse courte est non, ce n'est pas le cas. Magento CE 1.9.2.4 ne supporte que PHP 5.4 et 5.5 officiellement. Et bien que PHP 5.6 fonctionne correctement, il sature les fichiers journaux avec une multitude de messages d’avertissement.
La réponse longue est qu'il est relativement facile de le modifier pour exécuter le support PHP7. Cependant, de nombreuses extensions ne sont toujours pas compatibles PHP7, vous êtes donc largement autonome.
la source
PHP 7.0 est en fin de vie à partir de la première semaine de décembre 2018.
À compter de cette publication, la version actuelle de Magento 2.2.3 (version du 20 février 2018) ne prend pas en charge PHP 7.1 ni PHP 7.2.
Vous pouvez confirmer les versions prises en charge en consultant
app/bootstrap.php
votre dossier d'installation Magento et rechercher un code similaire à celui-ci:Il semble également y avoir des problèmes dans
.htaccess
lesquels causer 500 erreurs avec Apache 2.4.De plus, le fichier de composition inclus ne contient que des dépendances pour php5.5
la source