2025 est une année anniversaire 🎂 pour notre écosystème, en effet PHP fête ses 30 ans d’existence et avec lui, l’AFUP ses 25 ans 👏 (sans oublier les 20 ans de Symfony et les 15 ans de API Platform).
Le Forum PHP, messe annuelle des devs PHP, a donc été mis sous le signe de la fête et nous y étions en force pour célébrer, apprendre et partager.
Nous vous proposons, dans cet article, les éléments clés, les informations les plus marquantes de ces deux jours de conférence – comme si vous y étiez.
Par Nicolas GREKAS
Au regret des plus anciens d’entre nous, cette conférence ne portait pas sur sfContext 😀 et l’installation du framework avec PEAR…
Il faut dire que Symfony 1 et Symfony 2+ n’ont rien à voir – c’était vraiment une grosse rupture, et depuis Symfony n’a fait qu’évoluer sans se révolutionner. Une nouvelle version majeure de Symfony c’est donc plutôt vide car les features sont déjà disponibles dans les mineures précédentes 🎉. Symfony 8 ne démord pas à la règle, et contiendra donc surtout de la suppression de code (+4k –39k LOC et 72 features retirées).
Les vraies nouveautés qui sortent donc fin novembre avec Symfony 8 sont :
Tout le reste est déjà disponible ou le sera en 7.4.
Nicolas a aussi présenté quelques-uns des grands jalons de l’évolution de Symfony 2+, les fameux « WOW » : l’arrivée de Flex, l’autowiring, le MakerBundle, API Platform, Symfony UX, AssetMapper, les outils de debug, support des variables d’environnement, Messenger, HttpClient, les intégrations avec les services SaaS, ObjectMapper, des attributs partouts, et Symfony AI… Le framework grandit chaque année en fonctionnalités et en maturité 💪
Cette présentation conforte notre opinion de robustesse, d’innovation et de qualité qui émane de Symfony et nous sommes fiers d’y apporter notre contribution parmi les 500 contributeurs uniques par an !
Par Edouard COURTY
Édouard commence sa présentation avec une rétrospective très rapide sur l’évolution de l’IA. C’était en 1996 que Deepblue réussissait à vaincre le champion du monde d’échec, marquant la première victoire d’une machine sur l’esprit humain. Et pourtant ce n’est pas avant 2017 et le rapport “Attention is all you need”, pierre angulaire de la mouvance intelligence artificielle, publié par Google que nous avons enfin assisté à une véritable explosion de l’IA avec les sorties ensuite très rapide dans le temps de tous les modèles et outils que nous connaissons aujourd’hui.
L’IA aujourd’hui a encore des limites assez identifiables. Elle est très douée pour « réfléchir », restituer des connaissances et traiter des infos, mais pour ce qui est de réellement agir et effectuer des actions, il faut encore mettre la main à la pâte. Édouard nous donne l’exemple de demander à une IA de nous créer une playlist Spotify, elle peut conseiller des musiques mais pas les ajouter.
La question se pose donc : comment mettre des outils à disposition de l’IA pour enfin la rendre capable d’agir ?
Le Model Context Protocol (aka MCP, nous en parlions dans un précédent article) a justement été pensé pour permettre une communication entre IA et serveur, permettant à notre modèle de langage d’avoir accès à la panoplie d’outils installée sur notre serveur pour s’en servir afin de réaliser certaines tâches, le tout en JSON-RPC.
Le cycle de vie du MCP se découpe ainsi :
Pour l’implémentation dans Symfony, Édouard nous présente son bundle, le mcp-server-bundle, sur lequel il a commencé à travailler avant l’annonce de symfony/ai.
Ce bundle permet d’aider avec la gestion du transport, du fonctionnement serveur et ajoute une couche de DX sur tout le protocole pour le rendre simple d’accès. Il gère automatiquement la sérialisation et la validation du JSON et supporte nativement les clients IA traditionnels comme Copilot ou n8n
Pour nous présenter son bundle, Edouard a joué des vidéos d’applications de tchat automatiques avec une IA permettant à un utilisateur de passer une commande ou de modifier une adresse de livraison. Le tout, en langage naturel, comme si l’on discutait réellement à un agent humain. L’IA est capable d’accéder à la base de données et d’interagir avec, par le biais d’outils mis à sa disposition sur le serveur.
L’exemple est assez bluffant mais on se rend rapidement compte de certaines limites :
Une potentielle solution à certaines de ces limites serait d’avoir un second agent qui surveille la conversation du 1er avec l’utilisateur pour vérifier la cohérence de l’échange.
En...
[Courte citation de 8% de l'article original]