TYPO3 10LTS — En toute sécurité!

Auteur: Michael Schams , Benni Mack
Traduit par : Rachel - W-Seils

Lire l'article complet en version originale

Après avoir publié cinq sprints depuis juillet 2019, nous pouvons fièrement affirmer que nous avons équipé TYPO3 des meilleures librairies PHP modernes et que nous avons introduit de fantastiques nouvelles fonctionnalités d'entreprise. TYPO3 place la barre encore plus haut, et le cœur du système est plus stable que jamais.

Cet article résume les principaux changements de toutes les versions sprint 10.x et les raisons pour lesquelles les propriétaires de sites web, les intégrateurs, les développeurs et les éditeurs adopteront la nouvelle version LTS.

Promesses tenues

Avant de commencer à travailler sur TYPO3 v10 il y a plus d'un an et demi, nous nous sommes fixé deux objectifs importants :

  • Améliorer la configuration de site et la gestion des modèles.
  • Innover par le biais d'initiatives - organisées en petits groupes de développement.

Nous avons amélioré la configuration de site et le traitement des modèles afin d'améliorer l'expérience de création de sites pour les intégrateurs et les agences TYPO3. Grâce au module de gestion de site, les intégrateurs pourront configurer un ou plusieurs sites web en un point central du système TYPO3. La configuration de ces "sites" est désormais obligatoire dans la v10 LTS et TYPO3 génère automatiquement une configuration de base. Désormais, les intégrateurs peuvent configurer une instance TYPO3 à partir de zéro en quelques secondes.

Nous avons innové grâce à des initiatives stratégiques visant à modifier le développement de TYPO3 lui-même. TYPO3 est un logiciel libre et l'équipe centrale est étonnée de voir autant de contributions de haute qualité de la part de développeurs du monde entier. Comme Benni Mack l'a souligné dans un article en 2019, "Les initiatives sont le lieu où de nouveaux concepts sont évalués, discutés et développés en dehors de la feuille de route fixe pour le noyau de TYPO3".

Les initiatives sont indépendantes et communautaires, et un certain nombre de grandes initiatives ont été intégrées au cœur de TYPO3 v10. L'un des changements visuels les plus remarquables est issu d'une initiative : le nouveau tableau de bord accueillera les utilisateurs lorsqu'ils se connecteront au backend.

Améliorations pour les utilisateurs du back-end

Examinons de plus près ce que les utilisateurs finaux (par exemple les éditeurs) peuvent attendre de TYPO3 v10 LTS.

Des tableaux de bord flexibles et extensibles

La nouvelle extension du système, le "tableau de bord", permet aux utilisateurs backend d'avoir un aperçu rapide de l'état actuel du système. Le tableau de bord peut également :

  • Afficher les nouvelles provenant de flux RSS externes
  • Afficher des statistiques.
  • Afficher des informations sous forme de listes, de graphiques, de diagrammes.
  • Faire participer les utilisateurs à l'aide de boutons d'appel à l'action.

Ce ne sont là que quelques exemples. Les utilisateurs peuvent non seulement configurer plusieurs tableaux de bord (et passer facilement de l'un à l'autre), mais ils peuvent aussi ajouter, supprimer et même glisser-déposer des widgets à n'importe quelle position dans leur tableau de bord.

Les tableaux de bord se caractérisent par une grande souplesse et une grande extensibilité. Nous avons fait en sorte qu'il soit très facile pour les développeurs de créer leurs propres widgets et de les publier sous forme d'extensions TYPO3. TYPO3 v10 LTS est déjà fourni avec une sélection de widgets.

Pour en savoir plus sur le Tableau de bord, consultez la documentation de TYPO3.

Assistant de générateur de formulaire convivial

Les formulaires sont une partie essentielle de nombreux sites web et applications web. Les cas d'utilisation typiques sont les formulaires de contact, les demandes d'assistance, les formulaires pour acquérir des leads sur un site de produits, etc.

L'assistant de création de formulaires en plusieurs étapes a été amélioré pour les utilisateurs du backend. Désormais, les utilisateurs naviguent à travers les étapes avec des étiquettes descriptives telles que "Début" ou "Fin" au lieu de l'indicateur numérique "Étape x de y" utilisé auparavant.

Comme un seul fichier de configuration générale, "FormSetup.yaml", est nécessaire, les intégrateurs bénéficieront d'une installation simplifiée et d'une structure de configuration optimisée.

Pour en savoir plus sur le générateur de formulaire, consultez la documentation TYPO3.

Mises à jour automatiques pour les URLs réécrites et les redirections

Les URL lisibles par l'homme ont été introduites comme une caractéristique de base dans TYPO3 v9. Nous avons pu optimiser davantage cette fonctionnalité dans TYPO3 v10 LTS, afin de simplifier encore le travail des utilisateurs et de mettre à jour les segments d'URL. La modification d'un slug met automatiquement à jour les segments des sous-pages maintenant.

C'est une fonction formidable et logique, mais cela signifie-t-il que les anciennes URL deviennent invalides ? Ne vous inquiétez pas : TYPO3 v10 LTS vous a couvert ! Le système crée automatiquement des redirections vers les nouvelles URL, de sorte que les visiteurs du site web se retrouvent toujours sur la bonne page.

Mais ce n'est pas tout : TYPO3 notifie les utilisateurs du backend lorsqu'il exécute automatiquement des mises à jour d'URL. En cas de besoin, les utilisateurs peuvent annuler les mises à jour automatiques et les redirections en cliquant sur un bouton.

Réinitialisation/récupération sécurisée du mot de passe

Une autre nouveauté notable de TYPO3 v10 LTS est la fonction de "récupération de mot de passe" pour les utilisateurs du backend. Auparavant, les administrateurs créaient des comptes d'utilisateurs et attribuaient des mots de passe. Ils devaient ensuite fournir aux utilisateurs leurs données d'accès. La même chose s'appliquait aux cas où les utilisateurs oubliaient leurs mots de passe. Du point de vue de la sécurité, ce système n'est plus considéré comme étant à la pointe du progrès. Les administrateurs ne devraient pas avoir à s'occuper du tout des mots de passe des utilisateurs.

Dans TYPO3 v10 LTS, les administrateurs peuvent déclencher une réinitialisation des mots de passe des utilisateurs dans le backend de TYPO3. Les utilisateurs du backend sont maintenant également en mesure de demander un e-mail de réinitialisation de mot de passe de manière sécurisée.

Pour garantir un niveau de sécurité élevé, nous avons intégré un certain nombre de dispositifs de sécurité dans cette fonction :

  • Aucune information sur les utilisateurs existants n'est divulguée.
  • Le lien dans le courriel n'est valable que pour une durée limitée.
  • Il y a une limite de fréquence pour la demande d'un courriel de récupération.

 

Sur les systèmes qui ont des exigences de sécurité particulières, la fonction peut également être désactivée pour les comptes des administrateurs. La fonction peut également être complètement désactivée pour tous les utilisateurs. Cela peut s'avérer pertinent dans les installations avec des intégrations tierces telles que LDAP ou OAuth.

Améliorations du validateur de liens

Configuré comme une tâche de planificateur, le Link Validator de TYPO3 vise à détecter les liens rompus dans l'ensemble du système. Cette fonctionnalité indispensable a été améliorée et prend désormais en charge les pages, les fichiers et même les liens externes inaccessibles. Désormais, les liens externes peuvent également être validés à la volée.

Un cadeau spécial pour les développeurs : vous pouvez désormais étendre la fonctionnalité de base et développer des contrôles personnalisés pour déterminer ce qui pourrait être un lien brisé.

Pour en savoir plus sur le Link Validator, consultez la documentation de TYPO3.

Améliorations pour les intégrateurs

Les intégrateurs mettent en place, configurent et maintiennent les instances TYPO3. Dans chaque version de TYPO3, il est de notre plus haute priorité de les soutenir dans leur travail quotidien et de nous assurer que travailler avec un système aussi puissant et flexible que TYPO3 est et reste simple et agréable.

Une meilleure UX pour la gestion des utilisateurs du backend

Le mécanisme de gestion des autorisations des utilisateurs dans TYPO3 est connu comme étant la méthode de contrôle d'accès la plus puissante et la plus techniquement mature que l'on puisse obtenir d'un CMS d'entreprise open-source. Dans le même temps, les comptes d'utilisateur en arrière-plan sont sans aucun doute l'un des ensembles de données les plus importants dans un système TYPO3. La gestion des comptes d'utilisateurs, des groupes d'utilisateurs et de leurs autorisations n'est pas facile, si vous n'avez pas une vue d'ensemble claire et bien conçue des données.

Nous avons amélioré le module de gestion des utilisateurs afin de faciliter la gestion des utilisateurs et des groupes d'utilisateurs par les intégrateurs. La vue détaillée des utilisateurs mise à jour s'affiche maintenant :

  • Les données de l'utilisateur telles que le nom réel, l'adresse électronique
  • Date de début/fin de l'utilisateur
  • Tous les groupes, sous-groupes, autorisations
  • Supports de données et de fichiers
  • Accès en lecture/écriture aux tableaux
  • Et plus encore !

Les intégrateurs ont également la possibilité de comparer les comptes d'utilisateurs et les groupes d'utilisateurs, y compris leurs autorisations et d'autres données importantes, de manière claire et bien organisée.

Messages système attrayants en HTML

Les options de personnalisation du backend TYPO3 sont exceptionnelles. Les développeurs d'extensions peuvent choisir parmi une vaste gamme d'éléments de saisie et de contrôle prédéfinis lors de la construction des modules. Les intégrateurs peuvent modifier, supprimer et ré-étiqueter presque tous les aspects pour répondre aux besoins spécifiques d'un client.

Auparavant, il n'était pas possible de personnaliser les courriels générés par le système pour les envoyer aux utilisateurs, du moins pas dès le départ. Aujourd'hui, ces courriels utilisent le moteur de template Fluid pour envoyer des courriels HTML basés sur des modèles. Cette fonctionnalité est particulièrement intéressante pour les agences car il est maintenant possible de personnaliser la conception de ces courriels ou même de les remplacer complètement. Vous pouvez, par exemple, placer le logo d'une entreprise ou ajuster les couleurs pour les rendre plus attrayants en quelques étapes simples.

Plusieurs courriers électroniques du système TYPO3 utilisent ce nouveau format avec des modèles personnalisés de Fluid basés sur HTML, par exemple :

  • Notifications par courrier électronique qu'un utilisateur s'est connecté au backend.
  • Notifications par courrier électronique lorsqu'un élément change de stade dans l'espace de travail.
  • Le courrier électronique de réinitialisation du mot de passe.
  • Le courriel de test qui peut être déclenché dans l'outil d'installation (voir la capture d'écran ci-dessus).

Améliorations de la connexion frontend

La fonctionnalité de connexion front offre aux utilisateurs un moyen simple de se connecter et d'accéder aux zones réservées d'un site web. Cette fonctionnalité a été migrée et utilise le framework Extbase et le moteur de templating Fluid de TYPO3 v10 LTS.

Cette solution offre quelques avantages aux développeurs et aux intégrateurs :

Personnaliser l'apparence : Mettez à jour ou changez complètement l'apparence en modifiant simplement les modèles Fluid. Cela inclut non seulement le formulaire de connexion et d'autres fonctions visibles sur le frontend, mais aussi les courriels qui sont envoyés aux utilisateurs finaux, par exemple les courriels de récupération de mot de passe.

Une sécurité plus stricte : Un autre effet intéressant du passage à Extbase s'applique aux "validateurs" - un morceau de code PHP qui est utilisé pour valider si un mot de passe répond à certaines exigences de sécurité. Les développeurs et les intégrateurs peuvent désormais ajuster et modifier ces validateurs et appliquer des restrictions strictes sur les mots de passe.

Cette flexibilité accrue dans TYPO3 v10 LTS permet aux agences de personnaliser fortement la fonctionnalité de connexion pour les utilisateurs du frontend.

Pour en savoir plus sur la connexion front, consultez la documentation de TYPO3.

Détection automatique des conflits de redirections

Nous avons mentionné les segments d'URL et les redirections un peu plus haut. Le module de backend "Redirections" a été introduit avec TYPO3 v9 et permet aux administrateurs de sites d'ajouter et de configurer des redirections. Le chemin source peut être un nom arbitraire ou il peut être représenté par une expression régulière. Cela offre une grande fonctionnalité, mais que se passe-t-il si une redirection porte le même nom qu'une URL de page existante ?

De telles erreurs de configuration peuvent se produire et TYPO3 offre maintenant une solution simple pour détecter les redirections conflictuelles : une commande CLI qui affiche une liste des conflits (s'il y en a). Cette commande peut également être configurée comme une tâche de planification et les résultats sont affichés dans le module "Rapports" du backend.

Cette commande peut également être configurée comme une tâche de planification et les résultats sont affichés dans le module "Rapports" du backend.

Traductions avec Crowdin

TYPO3 est célèbre pour ses capacités multilingues. Cela ne s'applique pas seulement au contenu visible en amont, mais aussi aux étiquettes utilisées dans l'interface utilisateur en aval. Il n'existe pas beaucoup de systèmes de gestion de contenu sur le marché qui permettent aux utilisateurs de travailler dans la zone d'administration dans leur langue maternelle, quelle que soit cette langue - pour autant qu'il existe une traduction.

TYPO3 utilise désormais Crowdin pour faire passer les traductions des libellés du backend à un niveau supérieur. La solution SaaS moderne est utilisée par défaut comme plate-forme de gestion de localisation/traduction pour TYPO3 v10 LTS et succède à Pootle, qui a été utilisé par la communauté TYPO3 pendant de nombreuses années.

En plus de la traduction du backend, vous pouvez également utiliser Crowdin pour traduire le texte de l'interface utilisateur dans les extensions TYPO3 développées sur mesure.

Pour en savoir plus sur l'initiative de localisation, lisez l'article de Georg Ringer "Better Multilingual Support".

Lazy-loading des images dans le navigateur

Parmi les ressources nécessaires pour servir une page web moderne, les images sont celles qui ont le plus de poids en termes de taille de fichier. Pour y remédier, le lazy-loading des images a été adopté comme norme afin d'améliorer les temps de chargement, réduisant ainsi la charge des serveurs et des utilisateurs. TYPO3 est le premier grand système de gestion de contenu qui offre le lazy-loading out-of-the-box.

Le lazy-loading permet de différer le chargement des images, en commençant par une image de remplacement légère, et en n'utilisant la résolution supérieure que lorsque c'est nécessaire. Par exemple, si un visiteur ne fait pas défiler la page jusqu'au bout, ce média ne se chargera même pas. Cela réduit la quantité de données transférées et le temps de traitement. Cela permet, tant du côté serveur que du côté client, de rendre le site plus rapide et d'améliorer l'expérience de l'utilisateur.

L'attribut "loading" pour les balises d'image a été accepté et publié l'année dernière en tant que nouvelle norme HTML (voir la spécification pour plus de détails techniques). L'objectif de cet attribut est d'indiquer aux navigateurs s'ils doivent charger des images qui se trouvent en dehors de la fenêtre de visualisation. Comme les vendeurs de navigateurs commencent à ajouter le support de cette fonctionnalité, TYPO3 v10 LTS permet déjà aux intégrateurs et aux développeurs de configurer/utiliser cette fonctionnalité.

Améliorations pour les développeurs

Plongeons plus profondément dans les aspects techniques du système et signalons quelques nouvelles fonctionnalités de TYPO3 v10 LTS spécialement pour notre étonnante communauté de développeurs.

L'intégration de nouveaux développeurs dans TYPO3 est plus facile. En utilisant des normes de codage, des recommandations architecturales et des bibliothèques bien connues, il est possible pour les développeurs PHP d'apprendre rapidement le système, même s'ils n'ont pas beaucoup d'expérience avec TYPO3. C'est l'une des raisons pour lesquelles TYPO3 v10 rendra la réalisation des projets plus aisée. Comme il est plus facile à utiliser et que l'intégration est plus rapide, les agences et les sociétés de développement de logiciels peuvent réaliser de grands projets web de grande qualité tout en respectant le budget.

TYPO3 n'est pas entièrement basé sur le framework Symfony, mais utilise quelques bibliothèques soigneusement sélectionnées de ce projet. Ces composants sont modernes, stables et maintenus à jour par une communauté open-source active sous la licence libre du MIT. Voici quelques composants de Symfony qui sont maintenant disponibles dans TYPO3 v10 LTS :

Injection de dépendance Symfony

TYPO3 prend en charge l'injection de dépendance ("DI") basée sur la norme PSR-11 et intègre les concepts de DI de Symfony qui ont fait leurs preuves dans l'industrie. Les versions précédentes de TYPO3 utilisaient une solution d'ID personnalisée du cadre Extbase. Avec le passage au DI de Symfony, nous pouvons exploiter davantage de fonctionnalités et offrir un DI à l'échelle du système dans toute la base de code.

Les développeurs d'extensions seront probablement plus souvent en contact avec les conteneurs de termes et les services maintenant. Consultez la documentation de Symfony sur le composant "DependencyInjection" pour en savoir plus sur le concept et sur la façon de l'appliquer à vos extensions.

Pour en savoir plus sur le Dependency Injection, consultez la documentation de TYPO3.

EventDispatcher standardisé

Les hooks et les concepts de signal/slot sont deux des super-pouvoirs de TYPO3. Les signal/slot permettent aux développeurs d'extensions TYPO3 de construire des solutions personnalisées qui étendent les fonctionnalités de base.

Avec PSR-14, une nouvelle norme a été acceptée et publiée l'année dernière. PSR-14 est une façon unifiée d'étendre un framework PHP et est la norme de facto de nos jours. Nous avons implémenté un EventDispatcher interchangeable qui suit la norme PSR-14 et qui est compatible avec le composant Symfony du même nom. L'EventDispatcher dans le noyau TYPO3 vise à remplacer à moyen terme les hooks et les signal/slots. Tous les signaux spécifiques à Extbase ont été remplacés par des "événements" dans TYPO3 v10 LTS et d'autres hooks seront migrés vers PSR-14 dans les prochaines versions.

Les développeurs d'extensions n'ont pas à s'inquiéter : les hooks et les slots enregistrés restent tels quels et continueront à fonctionner pour conserver la rétrocompatibilité. Cependant, vous devriez commencer à mettre à jour vos extensions TYPO3 et utiliser le nouveau standard pour rendre votre code extensible et pérenne.

Pour en savoir plus sur les événements, les signal/slots, et les hooks, consultez la documentation TYPO3.

L'API Mailer de Symfony

Deux autres composants Symfony brillants qui ont été ajoutés au noyau TYPO3 sont les paquets Mime et Mailer.

TYPO3 utilise la bibliothèque SwiftMailer depuis la version 4.5. Cependant, le développement actif de cette bibliothèque a stagné et nous avons décidé de passer à une API moderne. Le paquet "Mime" est utilisé pour composer les courriels et le paquet "Mailer" pour les traiter et les envoyer. Ces deux composants proviennent du projet Symfony.

Les extensions TYPO3 qui utilisent actuellement l'API officielle TYPO3 pour la génération de courriers électroniques n'ont pas besoin d'être mises à jour. Le passage de SwiftMailer à l'API Symfony Mailer est totalement transparent et se fait en arrière-plan.

Pour en savoir plus sur l'API Mailer, consultez la documentation TYPO3.

Support et maintenance

En tant que version LTS (support à long terme), la version 10.4 de TYPO3 bénéficiera d'une maintenance et de corrections de bogues pendant 1 an et demi, et de mises à jour de sécurité pendant au moins 3 ans jusqu'en avril 2023. La société TYPO3 GmbH offre un support prolongé de TYPO3 pour une période allant jusqu'à 3 ans supplémentaires. Pour TYPO3 v10, cela signifie que la version ELTS sera supportée jusqu'en avril 2026 !

Prérequis système

TYPO3 v10 LTS nécessite une base technologique moderne avec PHP version 7.2 et un serveur de base de données tel que MySQL (version 5.5 minimum), MariaDB, PostgreSQL, ou Microsoft SQL Server. TYPO3 supporte également le moteur de base de données SQLite intégré à PHP.

Tous les serveurs web couramment utilisés sont pris en charge (par exemple Apache, nginx, Microsoft IIS, etc.). Au moins 256M bytes de mémoire doivent être alloués à PHP. Le backend TYPO3 est compatible avec tous les navigateurs modernes. Le guide d'installation et de mise à jour fournit de plus amples informations sur la configuration requise et les paramètres recommandés.

Télécharger

TYPO3 peut être installé de différentes manières. Par exemple, l'installation traditionnelle en utilisant le paquet source à get.typo3.org ou l'installation moderne avec composer, pour n'en nommer que deux. Pour plus de détails, consultez le site get.typo3.org/version/10.

Plus de détails sur TYPO3 v10 LTS

Pour en savoir plus sur les nouvelles fonctionnalités, les changements et les améliorations de TYPO3 v10 LTS, consultez les diapositives "TYPO3 What's New" et les notes de version détaillées des sprints v10.0 à v10.4. Si vous souhaitez partager les nouveautés de TYPO3 v10 LTS avec d'autres personnes :

Merci !

Comme toujours, merci aux nombreux contributeurs, testeurs et réviseurs qui ont fait de cette version la meilleure de TYPO3 à ce jour. Merci également aux membres de l'Association TYPO3 pour leur soutien à ce travail, à Heather McNamee pour sa précieuse contribution à la création de cet article, et à Benjamin Kott pour les captures d'écran.

Do you want to publish
a guest blog post?

 

Contact us

Do you want to publish
your own case study?

 

Get in touch