Petit point PHP7

Matthieu Marcillaud <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Salutations,

J'ai commencé un peu à tester SPIP avec PHP7 (rc6).

Il y avait des erreurs attendues, particulièrement les classes que l'on 
peut instancier doivent utiliser la méthode __construct() 
obligatoirement, et non pas une méthode du même nom que la classe ; ce 
qui restait encore possible avant.

Il y en a, des erreurs, qui l'étaient moins, particulièrement des 
changements apportés sur l'élément foreach 
http://php.net/manual/fr/migration70.incompatible.php#migration70.incompatible.foreach, 
particulièrement si on ajoute ou enlève des éléments du tableau à 
l'intérieur du foreach. Pas mal d'exemples de avant / après dans la rfc 
associée à ce changement https://wiki.php.net/rfc/php7_foreach

Dans la plupart des cas, passer la valeur par référence dans le foreach 
corrige la situation. foreach ($tableau as $k => &$v). Il y a 
probablement quelques cas dans SPIP où il va falloir faire attention.

On devrait pouvoir s'appuyer sur la lecture de 
http://www.exakat.io/reports/spip/index.html#ajax/Altering-Foreach-Without-Reference.html 
pour en vérifier certaines.


Il y a aussi une fonction utilisée par les images typo qui n'est plus 
présente (cependant il y a déjà un fallback dans le code actuel)
http://php.net/manual/fr/migration70.incompatible.php#migration70.incompatible.removed-functions.gd

Et je vois qu'il reste des appels à des fonctions mysql_ ou constantes 
MYSQL_ alors que la lib mysql n'est plus présente.

Donc, y a un petit travail de nettoyage / parcours à faire pour que tout 
soit propre.

MM.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.