web-dev-qa-db-fra.com

Quelles modifications du code sont nécessaires pour rendre les extensions Joomla 3.5 PHP7 compatibles?

(S'il vous plaît, supportez-moi, je suis désolé mais je ne peux tout simplement pas poser cette question rapidement.)

Nous attendons tous à peine la version stable de Joomla 3.5.0, n'est-ce pas?

RC3 RC4 est sortie aujourd'hui et il ne reste que quelques jours avant qu'elle soit enfin libérée (Joomla 3.5.0 Stable vient de paraître le lundi, mars 21e 2016), après plus d'un an de préparation et de nombreux changements d'objectifs et reports d'ETA.

La plus grande fonctionnalité, parmi tous les autres améliorations notables , sera certainement la capacité à fonctionner sur la dernière version de PHP7, entraînant une exécution presque plus rapide de 50% et une réduction de près de 4 fois la consommation de mémoire ( source ).

En raison de changements internes dans PHP7 (introduction des conseils de type et des mots désormais réservés "int", "chaîne" et "float"), il en résultera une rupture de compatibilité vers l'arrière pour de nombreuses extensions, même si le noyau Joomla 3.5.0 lui-même être entièrement compatible avec PHP7.
( source: rupture de compatibilité ascendante depuis Nouvelles de la version RC4 :)

Nous avons promis une compatibilité ascendante pour nous assurer que le code ne se brise pas subitement. Cependant, certaines circonstances peuvent nous obliger à ne plus tenir cette promesse. C'est le cas dans Joomla 3.5. En raison de modifications apportées à PHP 7, nous avons dû renommer la classe String en StringHelper. Sinon, Joomla! Ne peut pas s'exécuter sur PHP 7. Il s'agit d'un changement très mineur et Pour ceux que cela intéresse, vous pouvez en lire plus à ce sujet sur Mise à jour du paquet String 1..

J'ai suivi attentivement son développement et testé J! 3.5.0 sur PHP7 de SiteGround depuis ses premiers Betas jusqu'au dernier RC4, et je peux confirmer que les améliorations sont remarquables et géniales.

MAIS ... En ce moment, je suis très inquiet À quelle vitesse verrons-nous toutes les extensions entièrement mises à jour pour prendre en charge PHP7? Il y a de fortes chances que cela prenne des mois avant que nous puissions gérer librement nos sites sur de nouveaux PHP configurés tels qu'ils sont maintenant sur la v3.4.8 .

SO ... J'envisage sérieusement de mettre à jour manuellement certaines de mes extensions d'administration préférées afin de prendre en charge PHP7 , afin que je puisse continuer à les utiliser sur la nouvelle v3.5. Pour ceux qui sont populaires et activement supportés (comme Akeeba, JCE, etc.), j'attendrai les mises à jour des développeurs en espérant qu'elles arriveront assez rapidement. Mais pour ceux qui ne sont plus activement soutenus (il y en a beaucoup que je continue à utiliser depuis des années, mais ne me demandez pas de détails, s'il vous plaît), je devrai les mettre à jour moi-même.

AND ... Ma question est la suivante: Savez-vous quels changements de code sont nécessaires pour rendre une extension compatible avec PHP7?
Je veux dire, outre les modifications que l’équipe Joomla elle-même devait subir Mise à jour du paquet String 1. ...

9
Mikan

Ok, la première chose est la première. Joomla 3.5.0 stable sera publié demain  lundi prochain :)

Je fais un pas en arrière et tout d’abord fais une sauvegarde de votre site et l’installe sur un sous-domaine ou sur votre hôte local, exécutant PHP 7.0.4.

Une fois cela fait, testez-le soigneusement.

En ce qui concerne les extensions, Nicolas d’Akeeba est déjà compatible avec PHP 7) et d’autres extensions populaires le supporteront probablement déjà.

Je m'abstiendrais d'apporter vous-même des modifications de base et d'attendre que le développeur mette à jour comme il peut Vous connaissez l’exercice "de base" ... c’est une zone "interdit".

En ce qui concerne les modifications d’incompatibilité avec les versions antérieures, jetez un œil aux éléments suivants sur le site officiel PHP:

http://php.net/manual/en/migration70.incompatible.php

Globalement, attendez peut-être quelques mois jusqu'à ce que PHP 7 soit un peu plus stable. Il est encore relativement nouveau et il y aura certainement de gros bugs.

J'espère que cela t'aides

5
Lodder

Ce n'est pas une réponse à ma question, je voulais juste partager un lien que je viens de trouver et qui pourrait être utile pour améliorer notre Joomlas à la version 3.5:

Il existe un document Google " Liste des extensions Joomla! Prenant en charge Joomla! 3.5 et PHP 7 ", qui est accessible au public et géré par la communauté (nous parlons à propos de Joomla, après tout :-)).

Je sais que j'aurais dû le mettre comme commentaire et non comme réponse, mais je pense que c'est plus visible de cette façon.

2
Mikan