Les paquets PHIL
Les librairies et les bundles Symfony ouverts de PHIL pour PHP 8.5 et Symfony 8.2 : 86 paquets publiés sur Packagist, en 11 familles ; chaque page est générée du README et de la documentation du paquet, et mène à son dépôt GitHub et à sa page Packagist.
Nouveautés
11 novembre 2026 — Le kit PHIL UX en 0.3.0-alpha
Le kit PHIL UX et phil-ux passent en 0.3.0-alpha, et phil/ux-kit devient un bundle Symfony. Image et Picture préchargent l’image principale ; Picture et Logo offrent une variante pour le thème sombre et une image fixe quand le mouvement est réduit ; le crédit, la licence et l’origine d’une image s’écrivent sous sa légende. Deux recettes s’ajoutent : Gallery, une grille d’images, et Lightbox, qui agrandit une image dans une fenêtre. Une image d’un autre hôte n’est montrée que si cet hôte est permis par la configuration. Voir la démo .
Toutes les nouveautés
Fondations
Des traits et des attributs qui rendent les enums PHP plus faciles à énumérer, à comparer, à décrire et à regrouper en ensembles.
Désignez n'importe quel enregistrement de votre application par son genre et son identifiant, comme page:42.
Les quelques types que partagent tous les contextes délimités : identifiants, événements du domaine, erreurs, bus de commandes et de requêtes.
Sachez où chaque ressource est utilisée, et refusez d'en supprimer une dont quelque chose a encore besoin.
Une corbeille pour les pages et les autres ressources supprimées : restaurez-les, ou purgez-les après un délai fixé.
Texte et contenu
Des documents UJO (Universal JSON Output) comme des valeurs fiables : lus strictement, vérifiés bloc par bloc, rendus en HTML sûr.
Du Markdown, du BBCode, du MediaWiki, du DokuWiki, du Creole, de l'UJO, du HTML ou du texte brut, changés en HTML qu'on peut afficher sans risque.
De vrais guillemets, des tirets, les espaces du français et des traits d'union conditionnels dans votre HTML, dans toutes les langues, sans toucher au balisage.
Ce qui a changé entre deux textes, mot par mot, paragraphe par paragraphe ou bloc par bloc — affiché en HTML ou énuméré.
Du code en 24 langages coloré sur le serveur, en simples balises span HTML que n'importe quelle feuille de style peut habiller.
Un éditeur par blocs pour les formulaires Symfony, en contrôleurs Stimulus, qui écrit des documents UJO (Universal JSON Output) vérifiés sur le serveur.
Un rédacteur par bloc : des baux d'édition, la présence et les enregistrements de blocs poussés par Mercure, pour les applications Symfony.
Des notes de bas de page et des notes en marge pour les documents UJO (Universal JSON Output), à l'écran et à l'impression.
Des avertissements de contenu pour les jeux, les livres, les articles et les événements, et les thèmes que chaque lecteur replie ou masque.
Des étiquettes et un arbre de catégories traduit pour toute sorte de ressource, avec des types de formulaire pour les modifier.
Web et référencement
Des slugs d'URL faits à partir de titres et de noms, sous forme d'un type qui n'accepte rien d'autre.
Des adresses Web comme des valeurs normalisées, avec leur genre détecté : Facebook, YouTube, Mastodon, un site Web.
Des codes QR dessinés en SVG ou en PNG par PHP seul, sans service et sans bibliothèque d'images.
Des menus de navigation et des fils d'Ariane pour Symfony, avec la page courante du visiteur marquée.
Des redirections pour Symfony, gérées depuis une administration et résolues seulement quand rien d'autre n'a répondu.
Le plan de site XML des moteurs de recherche, construit à partir de pages vérifiées et coupé aux limites du protocole.
Le graphe schema.org d'une page sous forme de valeurs : des nœuds venus de toutes les parties d'un site, fusionnés par @id, vérifiés, puis imprimés dans un seul élément de script JSON-LD.
Les adresses /.well-known/ d'un site Symfony, chacune activée dans sa configuration.
Mettez des pages entières en cache dans Varnish ou un CDN, et purgez exactement celles qu'une modification change.
PHIL UX
Le kit PHIL UX pour le Symfony UX Toolkit : les mêmes recettes que le kit Shadcn, habillées par phil-ux, installées avec ux:install --kit.
phil-ux, le cadriciel CSS de PHIL : du vrai CSS, presque sans classes, avec des jetons --phil-*, clair et sombre.
Sécurité
Laissez les gens styliser leurs pages sans que leur CSS exécute du code, charge ce qu'il ne doit pas ou sorte de son cadre.
Laissez les gens téléverser et coller des images SVG sans leur permettre d'exécuter du code, de charger ce qu'ils ne devraient pas ou d'intégrer un autre document.
Repérez le pourriel dans l'envoi d'un formulaire sans captcha, en PHP simple.
Distinguez un robot d'un humain dans le navigateur, et ne laissez sortir que ce seul mot.
Dites aux gens à quel point leur mot de passe se devine, refusez ceux qui ont déjà fui et donnez-leur-en de bons.
Chaque fichier téléversé passe par un antivirus avant que quiconque puisse l'ouvrir.
Chaque route a une règle d'accès, ou dit pourquoi elle est publique : c'est vérifié en intégration continue, avant la mise en production.
Données
Des montants d'argent sous forme d'entiers exacts dans une devise connue, sans aucun nombre à virgule flottante.
Plusieurs taxes sur une même vente, chacune calculée sur la même base et détaillée au cent près.
Des numéros de téléphone lus comme les gens les saisissent, vérifiés selon le plan de leur pays, puis formatés.
Des dates qui se répètent selon une règle RFC 5545 : lisez-la, vérifiez-la, écrivez-la, listez ses occurrences.
Les heures d'ouverture d'un lieu, et s'il est ouvert en ce moment.
Des adresses postales vérifiées et écrites comme chaque pays les écrit.
Des coordonnées, des distances et des zones englobantes sous forme de valeurs PHP, et le géocodage par le fournisseur de votre choix.
Intégration
Signez et vérifiez des webhooks que n'importe quelle bibliothèque Standard Webhooks peut envoyer ou vérifier.
Un disjoncteur par tiers : les appels cessent aussitôt quand il échoue sans arrêt, et reprennent quand il se rétablit.
Sachez ce que dit chaque message de votre boîte de rebonds, et quoi faire de l'adresse qu'il nomme.
Exploitation
Désactivez une fonctionnalité sans déploiement, menez un test A/B et forcez l'ouverture du circuit d'un tiers défaillant.
Des commandes de console Symfony plus sûres
Des notes de version et des nouvelles que les migrations Doctrine envoient au clavardage une fois l'exécution terminée.
Sauvegardez une base de données et ses fichiers médias, chiffrés et en rotation, restaurez-les derrière une garde, et prouvez qu'ils se restaurent.
La surveillance d'un site Symfony : sa santé, un mode maintenance, les battements de cœur de ses tâches planifiées et ses files d'attente Messenger.
Shared development tooling for PHIL and Tilttek packages: quality-tool configurations, Composer scripts, documentation checks and the package skeleton.
Une page « écrivez-nous » pour Symfony, protégée du pourriel sans captcha.
Des identifiants de messagerie lus, affichés et liés selon chaque service : WhatsApp, Telegram, Signal, Matrix et d'autres.
Un moteur de vote : des bulletins vérifiés selon les règles de leur scrutin, puis dépouillés en classement.
Le cœur des réservations : une ressource, ses créneaux, ses règles, ses conflits et ses rappels.
L'enregistrement à l'entrée d'un événement ou d'un lieu : un code lu à une porte, décidé aussitôt, enregistré une fois, en ligne ou hors ligne.
Le noyau des annonces : une petite annonce, une offre d'emploi, une recherche de partenaires, rédigées, modérées, reçoivent des réponses et expirent selon les mêmes règles.
Des Open Badges 3.0 que tout le monde peut vérifier : émis, signés, intégrés à l'image, révoqués, appuyés et réunis dans un relevé d'apprentissage.
Impression et rapports
Ce qu'un fichier de police dit de lui-même (ses noms, sa graisse, sa licence d'incorporation) et la règle @font-face pour le servir.
Ce qu'un imprimeur refuserait, avant que le fichier lui parvienne.
Les maquettes que montre une boutique et les fichiers d'impression que reçoit un imprimeur, dessinés à partir des mêmes calques.
Un gabarit et un visuel donnent chaque produit d'un catalogue : chaque UGS, son prix, ses canaux et ses illustrations.
Des graphiques dessinés en SVG sur le serveur, à partir de la configuration qu'écrit déjà un éditeur de graphiques.
Des tableaux de bord et des rapports pour les applications Symfony : des chiffres fournis par n'importe quel bundle, des graphiques dessinés sans script, des rapports exportés, planifiés et livrés.