Mathieu Desnouveaux

PHP

43 sketchnotes disponibles pour ce thème

🐘

PHP et écosystème Symfony

Sketchnote illustrant les filtres API Platform présentée lors d'un meetup AFUP Lorraine. Le schéma explique qu'un filtre permet de limiter des ressources selon des critères par des attributs sur nos entités (ORM/ODM & Elastic Search). Il y a une refonte suite à l'arrivée de la compatibilité avec Laravel. Le découpage d'un filtre fourre-tout (SearchFilter avec IRI Filter, Exact Filter, Partial Filter, OR Filter, etc.) devient plus simple et respectueux. Les filtres plus simples montrent l'usage d'objets > tableaux pour la maintenance du framework et la possibilité de créer ses filtres personnalisés avec un Query Builder. Le Parameter Provider permet de transformer un paramètre (URI + parent + chain + resource) et la documentation automatique. La génération par Maker ainsi que la migration sans BC break avec les commandes Maker & Rector pour migrer.

API Platform : repenser les filtres

Publié le 30 novembre 2025
Par Vincent Amstoutz
🐘 PHP 🔗 API 🏗️ Architecture
📅 AFUP Lorraine
Sketchnote illustrant Symfony UX présentée lors d'un meetup AFUP Lorraine. Le schéma montre comment faire du front sans être un expert avec des composants Twig (classe PHP + template) incluant du PHP. Les Live Component permettent la mise à jour du front avec des éléments d'interaction dans la classe PHP déclenchant une mise à jour du composant. Les Live Action ajoutent des actions interactives. Les Live Listener écoutent les événements déclenchés par un composant. Le Formulaire permet la validation déclenchée par une Live Action. Stimulus est une librairie JavaScript au cœur de Symfony UX avec la possibilité d'étendre les fonctionnalités en JS.

Découverte de Symfony UX

Publié le 30 novembre 2025
Par Kevin Nadin
🐘 PHP 🎨 Frontend
📅 AFUP Lorraine
Sketchnote illustrant la gestion des dépréciations en PHP présentée au Forum PHP 2025. Le cycle montre: code, modification, dépréciation (signal clair d'évolution d'une version de code à une autre), log de dépréciations, traitement des dépréciations. La dépréciation est une feature à venir avec automatiser les corrections (robot). PHPUnit et Bridge permettent d'isoler les dépréciations pour les traiter (au runtime via des tests ou en static via une évolution de PHPStan). L'error handler intercepte la dépréciation. Liste les dépréciations dans un hook, jira (ampoule). Suivre un chemin de migration continue. Les dépréciations Symfony vont de l'angoisse à l'opportunité.

Comment ne jamais être à court de chaussettes propres

Publié le 30 novembre 2025
Par Mathias Arlaud
🐘 PHP 🛠️ Tools
📅 Forum PHP
Sketchnote illustrant comment utiliser PHP pour créer des jeux vidéo sur console au Forum PHP 2025. Le parcours commence avec les jeux vidéo 2D puis le hack (rétro ingénierie) permettant de construire avec Unity. Un manque de challenge mène à utiliser KallistyOS (SDK non officiel, moderne, pas un OS) avec Dreamcast. Le processus PHP inclut: compiler PHP, désactiver les extensions, modifier PHP, puis PHPEmbed menant à embarquer PHP. Un affichage par double buffering permet de coder le jeu. Il y a ensuite allouer correctement la mémoire et préallouer via un registre. Le fork de PHP (PTSD) mène à d'autres supports. Un chemin montre reste à faire et optimisation.

Et si vous utilisiez PHP pour coder des jeux sur votre console de jeux (favorite)

Publié le 30 novembre 2025
Par Éric Courtial
🐘 PHP 🎭 Culture Inspiration
📅 Forum PHP
Sketchnote illustrant le fonctionnement interne de Composer présentée au Forum PHP 2025. Le schéma montre Composer comme chef d'orchestre des dépendances PHP. Deux commandes principales: composer install (PROD - résolution des dépendances menant aux contraintes de version, puis cryptographie avec hash, optimisation de l'autoloader menant à la performance) et composer update (DEV). L'autoloader est central avec PSR4 par défaut à la volée, les fichiers ACPU (class map en RAM), et files inclusion. Un encadré montre contraintes avec WHY (qui utilise la dépendance?), WHY NOT (pourquoi ça bloque?), et DEPENDS (qui dépend de qui?). PSR0 est barré en rouge.

Sous le capot de Composer : comprendre l'outil qu'on utilise tous les jours

Publié le 30 novembre 2025
Par Félix Eyholot
🐘 PHP 🛠️ Tools
📅 Forum PHP
Sketchnote illustrant FrankenPHP et ses fonctionnalités avancées présentée au Forum PHP 2025. Le schéma montre que FrankenPHP est un moteur d'exécution PHP, supporte PDP PHP Foundation, et simplifie le déploiement et le packaging d'application. Six features principales sont présentées: 103 Early Hints (permet de préciser rapidement quoi prétélécharger, accélère la récupération des assets), Mercure (envoi de messages aux clients, notification simple), Binaire Static (package Franken, Caddy et le code source pour des déploiements simples), Worker Mode (garde en mémoire l'application, optimise considérablement les performances), Go Extension (simplifie le développement d'extension PHP, directement en Go), et Go Worker (permet d'exécuter du code en arrière plan Pargo avec gRPC dans FrankenPHP, Web Socket, FrankenPHP Queue).

FrankenPHP en dehors des sentiers battus

Publié le 30 novembre 2025
Par Kevin Dunglas
🐘 PHP 🚀 Performance 🛠️ Tools
📅 Forum PHP
Sketchnote illustrant les principes SOLID et l'injection de dépendances pour la performance au Forum PHP 2025. Le schéma montre les 5 principes SOLID (S-Responsabilité unique n'avoir qu'une seule raison de changer, O-Ouvert/Fermé ouvert à l'extension fermé à la modification on peut empiler des couches sans tout changer, L-Substitution de Liskov permet d'utiliser n'importe quelle classe fille, I-Ségrégation des interfaces réduit les interfaces et évite le couplage, D-Inversion de dépendance dépendre d'abstraction). Deux moments d'utilisation: 1-Au build (chercher les implémentations, ajout dans un fichier PHP), 2-Au runtime (on utilise le fichier). Extensions via décorateur (compiler pass) ou un attribut. L'injection de dépendance utilise les attributs pour identifier, configurer et décorer les dépendances. Pour résoudre des problèmes de perf, la solution est Lazyness avec un paresseux qui dit 'voir les détails dans la doc'.

PERF & Injection de dépendance - Êtes-vous assez paresseux-ses

Publié le 30 novembre 2025
Par Nicolas Grekas
🐘 PHP 🏗️ Architecture 🚀 Performance
📅 Forum PHP
Sketchnote illustrant comment gérer 180000 requêtes par seconde présentée au Forum PHP 2025. Le schéma montre la solution avec un laptop du marché + CURL (1996 dans PHP, depuis 2000). Deux stratégies principales: 1-Boucle de requêtes (en séquentiel, réutiliser la connexion) avec une ampoule indiquant l'idée, 2-Paralléliser les requêtes avec une alerte (busy looping pour attendre la fin d'une boucle). Le protocole HTTP/1.1 est expliqué avec client-serveur et plusieurs échanges pour une requête pour acquitter la requête. Le multiplexing montre une requête HTTP/2 parallèle. HTTP/3 arrive de QUIC avec UDP. La résolution DNS dans CURL montre multi-serveur (et repartissant les appels curl) puis mise en cache. Le multithread pour exploiter 100% du CPU mène à PCNTL et SCHTOP.

180 000 requêtes par seconde expliqué simplement

Publié le 30 novembre 2025
Par Xavier Leune
🚀 Performance 🐘 PHP
📅 Forum PHP
Sketchnote illustrant la création de binaires autonomes en PHP présentée au Forum PHP 2025. Le schéma montre le contexte (pas de réseaux, pas de permission, pas de bonnes dépendances) avec l'objectif d'utiliser PHP partout comme en Go. Le fonctionnement de PHP est expliqué avec Zend Engine et SAPI (Terminal, Web, etc.), puis l'embed qui permet d'exécuter PHP comme du C via SPC + phar.php.sfx. Le processus de création en 4 étapes: 1-Création du PHAR, 2-SPC téléchargement + dépendance, 3-Build + combiner avec le PHAR, 4-Exécutable. Le tout est complet dans PHPacker. L'empaquetage montre Archive PHAR DU, Code Source, Micro SFX, et PHP.

PHP sans PHP : créez des binaires autonomes de votre code

Publié le 30 novembre 2025
Par Jean-François Lépine
🐘 PHP 🛠️ Tools 🔧 DevOps
📅 Forum PHP
Sketchnote illustrant la nouvelle génération d'outils de documentation pour PHP présentée au Forum PHP 2025. Le schéma compare PHP.net (plein de dépôts: site, analytics, binaires, news, wiki) avec l'absence de documentation centralisée. Il montre ensuite les différents dépôts de documentation (plusieurs dépôts PHD pour rendre: base, doc-en, doc-lang). La section DocBook présente le standard complet avec sémantique et tag de crosslink. La partie génération montre l'évolution: avant (parser le code C), puis DocGen, puis PHP 8 (named argument, arg info, stub), puis GenStub et enfin Stub-to-DocBook (testable). La section exemple de doc montre les fichiers book.xml (point d'entrée), configure.xml (configuration INI), setup.xml (glue), version.xml et function.xml (liste des fonctions). Le rendering montre XSLT (lent, compliqué) et PHP (en PHP, rapide, plus maintenu).

Codifier PHP: une nouvelle génération d'outillage pour la documentation

Publié le 30 novembre 2025
Par Gina Banyard
🐘 PHP 🛠️ Tools
📅 Forum PHP
Sketchnote illustrant l'utilisation des monades pour archiver efficacement de grands volumes de données, présentée au Forum PHP 2025. Le schéma montre le contexte d'archivage de documents avec métadata et binaire, l'idée initiale de streaming de données avec Generator puis logique puis foreach, mais cela mène à une composition de générateurs qui rend le système complexe. Pour simplifier, les monades sont présentées comme une solution de programmation fonctionnelle divisée en préparation, action et testable sans contexte lourd (stateless). Des composants utiles sont présentés: ORM monadisé, Filesystem monadisé, et Encoding monadisé.

Archiver efficacement de grands volumes de données grâce aux monades

Publié le 30 novembre 2025
Par Baptiste Langlade
🐘 PHP 🏗️ Architecture 📊 Data
📅 Forum PHP
Sketchnote retraçant l'évolution de l'injection de dépendances dans Symfony. Chronologie: Vanilla PHP (instanciation directe), Symfony 1 (2007, sfContext), Symfony 2 (2011, conteneur de services), Symfony 2.7 (autowiring), API Platform 1 (2015), API Platform 2 (2016), Symfony 3.3 (2017, 'magic' API resource basée sur le conteneur de services + tag manuel), Symfony 4 (configuration automatique, service privé avec optimisation), Symfony 5.3 PHP8 (2019, arrivée des attributs), Symfony 6 (2021, les attributs deviennent la norme), API Platform 3 (2022, state processor), Symfony 7 (2023, autowire, iterator). Flèche descendante indique 'un parcours évolutif vers une simplification'.

Symfony & l'injection de dépendances : du passé au futur

Publié le 29 novembre 2025
Par Imen Ezzine
🐘 PHP 🏗️ Architecture
📅 API Platform Conference