Au commencement était le PHP
SPIP 4.1 est compatible des versions PHP 7.4 à 8.1. Le support de PHP 7.3 est donc abandonné et cela en conformité avec la décision de ne plus maintenir une compatibilité très large avec les anciennes versions de PHP.
Le détail.
Sécurité
Le système d’authentification (logins et actions) et de stockage des mots de passe en base de données a été complètement revu ce qui améliore grandement certains enjeux liés à la sécurité des authentifications :
- https est très fortement conseillé sur les sites (d’ailleurs, y en a-t-il encore beaucoup sans ?), en effet, auparavant, SPIP chiffrait le mot de passe de connexion directement en JavaScript, à partir de la version 4.1 il est envoyé en clair ;
- le hachage du mot de passe a été revu, en conséquence, il ne sera plus possible de repasser en SPIP 4.0 (la sauvegarde est ton amie).
Tout est bien détaillé par là.
Bibliothèques
Les différentes bibliothèques utilisées par SPIP ont été mises à jour.
Javascript
-
SPIP
- Sortable 1.14.0 (depuis 1.13.0)
- jQuery Form 4.3.0 (depuis 4.2.2)
- JS Cookie 3.0.1 (depuis 2.2.1)
-
Statistiques
- d3 7.3.0 (depuis 6.6.0)
- luxon 2.3.0 (depuis 1.6.0)
-
Plan
- jstree 3.3.12 (depuis 3.3.8)
PHP
-
Compresseur
- css-tidy 2.0.0 (depuis 1.1.0)
-
Medias
- getid3 1.9.21 (depuis 1.9.20)
- svg-sanitizer 0.14.1
Voir aussi par là.
API, pipeline, typage PHP et tutti quanti
L’API de création et de décodage des URLs de SPIP est partiellement renommée. Il y a maintenant deux jeux de fonctions distincts pour générer l’URL d’un objet et pour décoder une URL.
Les pipelines pre_edition
et post_edition
ont une clé de donnée supplémentaire transmise (champs_anciens
) lors de l’action modifier
.
Certains arguments et retours de fonctions commencent à être typés, ce qui est susceptible de créer des erreurs de squelettes, voire des erreurs PHP dans des plugins ou des scripts maisons qui font appel à ces fonctions.
Pour plus de détails.
Et aussi : les traductions ont été mises à jour, le plugin Archiviste ainsi que quelques autres ont été améliorés.
Pour en savoir plus.
Si vous n’êtes pas encore passé à SPIP 4
La recette complète et bien détaillée pour un passage sans stress.
Des petites astuces complémentaires :
- si le site utilise le portfolio, il est possible de garder le comportement voir au niveau de « Documents et logos » ;
- si vous ne voulez pas afficher de légende aux illustrations (légendes qu’elles auront toutes, quel que soit le mode d’insertion, si les champs titre, description ou crédits ont été remplis), vous pouvez utiliser ce modèle ;
- si, ce qui est la façon la plus simple de mettre à jour, vous utilisez spip_loader et que vous obtenez une belle page blanche pleine de vide à la place, c’est que votre spip_loader n’est pas tout neuf, la version actuelle est le 5.1.0, il faudra le récupérer et l’installer par ftp.
Entre nous, si votre site est dans une version encore plus antérieure de SPIP, ça vaut le coup d’envisager d’en changer le squelette pour lui donner un coup de neuf et le rendre adaptatif et donc lisible aussi de tous les terminaux mobiles (voire, carrément plus accessible). Cela tombe bien, il n’y a qu’à se baisser pour récupérer un squelette HTLM5.
Et si vous avez des questions, l’entraide de SPIP est là pour ça. Sachant qu’en la parcourant, vous aurez peut-être déjà des réponses à vos questions 1.
Le calendrier pour finir
SPIP 4.0 sera maintenu jusqu’à fin juin. Voire, jusqu’à la sortie de la version 4.2, qui est envisagée pour l’été 2022.
SPIP 3.2 ne sera maintenu que pour des correctifs de sécurité jusqu’à fin décembre 2022.
Voir aussi le résumé des versions sur l’annonce de la sortie de SPIP 4.1.
Addendum de retour d’expérience
Si vous avez mis à jour et que tout est inaccessible (sans avoir tout lu des notes de version), mais faites-le avant, c’est mieux (moins anxyiogène déjà), c’est que l’extension PHP sodium n’est pas installée. Cela se passe sur le « panel » de votre hébergeur. Si vous avez un cPanel, c’est dans le PHP Selector.
Un grand merci à celles et ceux qui font de SPIP un outil avec lequel il est tellement agréable de travailler.