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

9

(S'il vous plaît, restez avec 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 sorti aujourd'hui et ce n'est qu'une question de jours avant sa sortie finale ( Joomla 3.5.0 Stable vient de sortir le lundi 21 mars 2016 ), après plus d'un an de changements d'objectifs et de nombreux changements d'ETA.

La plus grande fonctionnalité, parmi toutes les autres améliorations notables , sera certainement la possibilité de s'exécuter sur le plus récent PHP7, résultant en une exécution presque 50% plus rapide et une diminution de près de 4 fois la consommation de mémoire ( source ).

En raison des changements internes à PHP7 (l'introduction d'indices de type et les mots désormais réservés "int", "string" et "float"), il en résultera une rupture de compatibilité descendante pour de nombreuses extensions, même si le noyau Joomla 3.5.0 lui-même le fera être entièrement compatible avec PHP7.
( source: rupture de compatibilité ascendante de RC4 Release News :)

Nous avons une promesse de compatibilité ascendante pour nous assurer que le code ne se casse pas soudainement. Cependant, il existe des circonstances qui peuvent nous obliger à ne plus tenir cette promesse. Dans Joomla 3.5, c'est le cas. En raison de changements dans PHP 7, nous avons dû renommer la classe String en StringHelper sinon Joomla! ne peut pas fonctionner sur PHP 7. Il s'agit d'un changement très mineur et nous n'en attendons aucun problème. Pour ceux qui sont intéressés, vous pouvez en savoir plus à ce sujet dans le package Update to String 1.3 .

J'ai suivi attentivement son développement et testé J! 3.5.0 sur PHP7 de SiteGround depuis son premier Betas jusqu'au plus récent RC4, et je peux confirmer que les améliorations sont perceptibles et excellentes.

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 grandes chances que cela prenne des mois avant que nous puissions exécuter 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 pour prendre en charge PHP7 , donc je peux continuer à les utiliser sur la nouvelle v3.5. Pour ceux qui sont populaires et activement soutenus (comme Akeeba, JCE, etc ...), j'attendrai les mises à jour du développeur en espérant qu'elles arriveront assez rapidement. Mais pour ceux qui ne sont plus activement pris en charge (il y en a beaucoup que je continue à utiliser pendant des siècles, ne me demandez pas de détails, s'il vous plaît), je devrai les mettre à jour moi-même.

ET ... Ma question est enfin: Savez-vous par hasard quels changements de code sont nécessaires pour rendre certaines extensions PHP7 compatibles?
Je veux dire, outre les changements que l'équipe Joomla a dû subir pour la mise à jour du package de chaînes 1.3 ...

Mikan
la source
1
Je pense que la plupart de ce message pourrait être modifié / supprimé. L'objectif principal de la question est "Quels changements de code sont nécessaires pour rendre les extensions Joomla 3.5 compatibles PHP7?" Bien que je pense que les références incluses aux changements connus sont importantes.
TryHarder
1
@moomoochoo - Merci pour l'homme qui change de titre ... Je pense aussi que les références sont importantes pour un public plus large ...
Mikan
1
Si l'une des extensions que vous utilisez utilise le chargeur ioncube, vous devrez peut-être attendre un moment. forum.ioncube.com/… Dans cette situation, la modification de l'extension n'aiderait pas.
TryHarder
@oooooo - Merci d'avoir souligné cela, il est bon de savoir que ioncube est toujours incomatible avec le plus récent PHP, même si mon objectif principal est toutes ces petites extensions d'aide dont les administrateurs chevronnés ne peuvent pas imaginer notre boîte à outils sans, et qui n'utilisent guère ce niveau de protection des licences.
Mikan
1
Bien qu'il ne couvre peut-être pas votre objectif, j'espère qu'il est pertinent et utile pour les autres :)
TryHarder

Réponses:

5

Ok la première chose est la première. L'écurie Joomla 3.5.0 sortira demain lundi prochain :)

Je prends un peu de recul et je prends d'abord une sauvegarde de votre site et l'installe sur un sous-domaine ou votre hôte local, exécutant PHP 7.0.4.

Une fois terminé, testez-le soigneusement.

En ce qui concerne les extensions, I Nicolas d'Akeeba prend déjà en charge PHP 7 et d'autres extensions populaires le prendront probablement déjà en charge.

Je m'abstiendrais de faire vous-même les modifications de base et j'attendrais que le développeur se mette à jour au fur et à mesure. Vous connaissez le "core hack" drill .... c'est une zone "no go".

En ce qui concerne les changements d'incompatibilité en amont, jetez un œil aux éléments suivants sur le site officiel de PHP:

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

Dans l'ensemble, attendez peut-être quelques mois que PHP 7 soit un peu plus stable. C'est encore relativement nouveau et il y aura certainement de gros bugs.

J'espère que cela t'aides

Lodder
la source
Cela aide sûrement ... Thanx man ... Je ne peux pas attendre jusqu'à demain ;-)
Mikan
Il semble qu'ils aient à nouveau reporté Stable :-( twitter.com/viktorvogel/statuses/710007837850791937 , mais ils ont plutôt publié RC4 aujourd'hui ... Oh, eh bien ...
Mikan
2
@MirkoMikan - Stable est lundi prochain maintenant
Lodder
2

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 mettre à jour notre Joomlas vers 3.5:

Il existe une " liste des extensions Joomla! Prenant en charge Joomla! 3.5 et PHP 7 " dans Google Doc , qui est accessible au public et maintenue par la communauté (nous parlons 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.

Mikan
la source