Le blog

Retour sur la LaraconEU 2025

Publié le 05 février 2025

Pour la deuxième année consécutive, notre coopérative s’est rendue à Amsterdam pour assister à la LaraconEU 2025, la plus importante conférence européenne consacrée à Laravel et son écosystème. Plus de 720 personnes ont répondu présent au Muziekgebouw aan 't IJ, une lumineuse salle de concert donnant sur les canaux de la mer du Nord. Revenons sur les conférences de cet événement où nous étions sponsor Gold mais également speaker.

Le Muziekgebouw, qui accueillait la LaraconEu 2025" class="wp-image-10755#

Welcome speech

Le développeur Caneco a assuré le rôle de présentateur pendant ces deux jours de conférences. Il a rappelé que Laracon ne se limite pas aux Pays-Bas et que plusieurs éditions sont prévues à travers le monde : Inde, Grande-Bretagne, Danemark, États-Unis... Il a également insisté sur la promesse de la communauté Laravel lors de cet événement : la bienveillance entre tous, favoriser les échanges, accumuler les selfies, et... pas de Vegemite sur place (une blague de niche dans la communauté). Un immense bravo à lui pour avoir mis à l’aise l’ensemble des participant·es et des speakers, pour son travail remarquable en tant que host, et pour avoir tenté de prononcer correctement le nom de notre société.

#

Pipeline Power-Up: Turning Complex Logic into Simple Steps

Lors de ce premier talk très technique, Bobby Bouwmann nous a expliqué comment gérer la logique complexe d’un projet en créant des pipelines. Celles-ci permettent d’isoler chaque étape dans une classe dédiée, dotée d’une responsabilité simple et unique. Cette approche facilite le contrôle, l’évolution et les tests du code. Une classe Pipeline présentée par Bobby se charge ensuite d’exécuter chaque étape dans le bon ordre.Bobby a montré également comment tirer parti des fonctionnalités modernes de PHP pour aller encore plus loin. Par exemple, chaque étape de la pipeline peut être représentée par une valeur d’énumération, que la classe Pipeline peut alors gérer. Enfin, il a présenté le pattern Saga, très populaire dans l’écosystème JavaScript.

#

Have you met Ada? Word Embeddings with Laravel

C’est avec un talk orienté IA que Diana Scharf est entrée en scène. Elle a commencé par vulgariser brillamment le concept de word embeddings et les notions mathématiques sous-jacentes : "une représentation du monde sous forme de vecteurs".

Après nous avoir rappelé (ou appris) les bases, Diana nous a présenté le fonctionnement du modèle de word embedding nommé Ada d’OpenAI, un bon compromis entre qualité et coût. Elle en profite pour rappeler qui était Ada Lovelace, la première programmeuse de l’histoire. À l’aide de Jupyter Notebook, Diana a illustré le fonctionnement d’un tokenizer, puis montre comment tokeniser un texte afin de l’utiliser comme word embeddings en PHP, grâce à la bibliothèque PHPW2V. Le tokenizer retourne une liste de vecteurs qu’il faut stocker. Pour cela, Diana utilise PostgreSQL, enrichi d’extensions spécifiques permettant d’ajouter des fonctionnalités dédiées aux vecteurs.

Enfin, Diana a montré comment exploiter ces word embeddings avec OpenAI et d’autres prestataires depuis une application Laravel. Elle présente une méthode permettant d’effectuer une requête avec un LLM et des word embeddings personnalisés, directement depuis les modèles Eloquent. La méthode consiste d’abord à rechercher dans notre base PostgreSQL les tokens les plus proches du texte sur lequel nous voulons travailler. Ces tokens retournés nous aident ensuite à construire un prompt pertinent.

#

Help out frustrated Bob

Bert De Swaef a présenté des fonctionnalités avancées et des services de Laravel pour répondre à des problématiques rencontrées dans des projets réels. En fil rouge, un projet fictif développé par Bob illustre les différentes astuces abordées. Pour fluidifier l’expérience utilisateur, Bert a exploré certaines fonctionnalités de Livewire, comme le préchargement des ressources au survol ou encore l'interrogation régulière des mises à jour (polling).

Pour aller plus loin en matière de réactivité et de performances, il introduit Laravel Reverb, une technologie basée sur les WebSockets. Bien que son fonctionnement soit similaire à Mercure (solution ouverte développée et maintenue par Les-Tilleuls.coop), son approche technique est différente. Laravel Reverb permet de notifier les clients uniquement en cas de mise à jour, réduisant ainsi les requêtes inutiles.

Bert a montré également comment associer Laravel Reverb à Eloquent pour envoyer un événement lors de la sauvegarde d’un modèle et récupérer cette mise à jour côté vue afin de recharger automatiquement l’interface utilisateur. Toujours avec Eloquent, il explore ensuite les capacités avancées du Query Builder pour répondre à des besoins plus spécifiques.

#

From Zero to Static Analysis Hero

Ryan Chandler a commencé par rappeler l’objectif initial de l’analyse statique, notamment pour les langages interprétés comme PHP : détecter les erreurs le plus tôt possible, avant l’exécution du code (runtime). L’analyse statique est également utilisée dans la plupart des linters et formateurs de code PHP, comme Rector, qui s’appuie sur PHPStan. Il rappelle que, pour PHP, les principaux outils sont PHPStan et Psalm pour analyser nos bases de code. Il se concentre ensuite principalement sur PHPStan, qui est le plus utilisé dans l’écosystème.

Ryan explique ensuite comment PHPStan exploite l’Abstract Syntax Tree (AST) via la bibliothèque nikic/PHP-Parser pour analyser le code PHP et lui appliquer des règles de vérification basées sur la configuration définie (paths, niveaux, règles personnalisées, extensions, etc.). Il nous montre ensuite comment créer une règle PHPStan personnalisée afin d’ajouter des vérifications spécifiques à un projet. L’objectif est d’uniformiser les pratiques de développement, d’assurer le respect des bonnes pratiques et d’améliorer la qualité du code. En résumé, créer une règle PHPStan consiste à :

  1. Définir une classe ciblant un type de node de l’AST.
  2. Implémenter la règle en effectuant des tests sur ces nodes et en y ajoutant des erreurs si nécessaire.
  3. Ajouter la règle dans la configuration de PHPStan via la clé rules.

Une fois en place, il ne reste plus qu’à exécuter PHPStan, intégrer cette règle dans la CI de votre choix… et c’est prêt ! 🙂

#

No more slow requests

Marcel Pociot a présenté les fondamentaux de l’optimisation des performances dans Laravel. Il a d'abord expliqué la gestion du cache applicatif, notamment avec php artisan optimize, utilisé par défaut sur Laravel Forge pour mettre en cache la configuration, les routes, les événements et les vues.

Il a ensuite souligné l’importance des queues pour gérer les e-mails, SMS et la charge applicative, puis a abordé Opcache et son rôle clé dans Laravel Herd pour optimiser l’exécution des scripts PHP. Pour approfondir, le sujet sur Opcache et JIT nous vous recommandons l’article de notre coopérateur Grégoire Hébert : Opcache & JIT PHP.

Côté base de données, il a évoqué les N+1 queries et proposé des solutions comme le eager loading, les jointures explicites et la pagination. Enfin, il a présenté le profiler intégré à Laravel Herd, permettant d’analyser en profondeur les requêtes et d’identifier les goulots d’étranglement.

#

Laravel Update

Taylor Otwell, le créateur de Laravel, a ouvert sa keynote en rappelant les origines du framework. Conçu il y a 15 ans, Laravel est un outil "built for productivity", pensé non pas pour développer un projet open source, mais pour faciliter le lancement de produits et de side-projects avec un maximum d’efficacité. Cette philosophie se reflète dans l’ensemble du framework et de son écosystème. Il a aussi détaillé le nouveau positionnement du framework. Laravel veut devenir le choix par défaut pour créer des applications web full stack, tous langages et tous écosystèmes confondus. La solution doit être la plus simple possible à installer, à utiliser et à déployer en production.

Taylor Otwell à la LaraconEU" class="wp-image-10754

Taylor explique que les nouveaux devs, et en particulier celles et ceux qui se lancent dans le métier, doivent pouvoir disposer d’un environnement fonctionnel et productif sans effort et en quelques minutes puis disposer d’un environnement qui favorise l’efficacité.

Pour ce faire, de nombreux outils de l’écosystème ont été publiés ou mis à jour cette année :

  • php.new : un one-liner pour installer PHP, Composer et créer un projet Laravel sur n’importe quel OS. Notre seul regret est que notre projet FrankenPHP, qui propose un mode d’installation similaire et est le moteur par défaut de Laravel Octane, ne soit pas (encore ?) installé par cet outil.
  • Inertia version 2.0, une intégration des bibliothèques front React, Vue et Svelte dans Laravel. Cette nouvelle mouture est encore plus simple à utiliser que la précédente. Taylor en a également profité pour annoncer que Inertia avait été racheté par Laravel.
  • Flux : un kit d’UI pour Livewire qui fournit de très nombreux composants graphiques (boutons, dialogues, modales…) prêts à l’emploi. 
  • Une extension officielle pour VS Code, le plus populaire des IDE, qui est certes moins puissant que PhpStorm, mais très utilisé par les développeurs des autres écosystèmes, gratuit et partiellement libre.

Taylor a ensuite annoncé les nouveautés qui vont arriver à incessamment :

  • Nouvelle version de laravel.com, le site va être entièrement refondu et modernisé.
  • Laravel 12, qui comme d’habitude va introduire de nombreuses nouvelles fonctionnalités, et sera entièrement rétrocompatible avec Laravel 11.
  • Une nouvelle version de Laravel Nightwatch, l’outil de monitoring de Laravel.
  • De tous nouveaux starter kits, entièrement réécrit (un par stack frontend populaire) qui permettront de bootstrapper des projets plus rapidement que jamais.

Finalement, Taylor est passé à la grosse annonce de cette année : Laravel Cloud. Laravel Cloud va simplifier l’extrême le déploiement des applications Laravel.

Connectez la plateforme à votre dépôt Git, et Laravel Cloud s’occupe de tout : installation, paramétrage et optimisation automatique de PHP, des extensions nécessaires et de l’application Laravel elle-même. Ajoutez des services additionnels directement depuis l’UI (Postgres, Redis et un stockage compatible S3 sont déjà supportés, et d’autres services tels que MySQL vont être très vite ajoutés). Ils sont automatiquement provisionnés et intégrés à votre application, sans nécessiter de modification du code ou de la configuration.

Il est aussi possible d’activer en un clic des fonctionnalités avancées du framework, comme Laravel Octane, un système qui améliore drastiquement les performances des applications Laravel grâce à un mode worker basé sur notre outil FrankenPHP.

Taylor a déployé en direct plusieurs versions d’une application basée sur l’un des nouveaux “starter kits”, et la démonstration s'est révélée impressionnante. UI léchée et pratique, simplicité déconcertante (il n’y a rien à faire), et déploiements ultra-rapides. Il a annonce des prix très compétitifs, notamment grâce à un système qui met l’application (et sa base de données) en veille en l’absence de requêtes.

La performance devrait également être au rendez-vous : Laravel Cloud est entièrement optimisé pour tirer le meilleur du framework, et un partenariat avec Cloudflare (CDN, cache HTTP, web application firewall, stockage de fichiers…) a été annoncé. Avec ce nouveau Cloud et tous ces nouveaux outils, l’objectif de Laravel est clair : laisser les développeurs se concentrer sur le code à forte valeur ajoutée et l’innovation, en les débarrassant totalement de la gestion de l'infrastructure et des tâches répétitives ou évitables.

Laravel Cloud sera disponible dès le 24 février, en même temps que Laravel 12, le nouveau site de Laravel et les nouveaux starter kits.

#

Nightwatch Returns 

Jess Archer, engineering team lead chez Laravel, a ouvert la deuxième matinée de la conférence avec une présentation de Nightwatch, l’outil de monitoring qu’elle contribue à développer. Elle a détaillé son tableau de bord, offrant une vue complète des serveurs et applications : usage CPU, mémoire, requêtes et activité des utilisateurs. L’onglet Requêtes permet d’identifier les goulots d’étranglement grâce à des filtres et backtraces enrichies. Dans Jobs, on suit les tentatives et erreurs lors des retries. Les sections Exceptions et Queries aident à prioriser erreurs et requêtes inefficaces. Jess a montré comment configurer une application avec un simple composer require, avant de partager un cas d’usage avec Laravel Forge, illustrant l’optimisation des API et requêtes N+1. Accès anticipé sur nightwatch.laravel.com.

#

Introducing [REDACTED]: a new paradigm for Laravel + Javascript

Lors de sa présentation dynamique, Aaron Francis a dévoilé Fusion, une nouvelle librairie conçue pour simplifier l'intégration de JavaScript avec Laravel et fluidifier l’interaction entre Vue.js, HTML et le backend.

Il a détaillé ses principales fonctionnalités :

  • Templating simplifié avec la création de props.
  • Hot Module Reloading pour un développement plus fluide.
  • Props dynamiques, définies par défaut mais surchargeables via des paramètres de requête.
  • Props basées sur les routes, permettant d'afficher des données comme le titre d'une route ou d'exécuter des logiques spécifiques.
  • Accès aux données backend depuis n'importe quel point de l’application.
  • Utilisation avec Vue.js, en utilisant notamment les directives v-if, v-bind ou v-for, combinées aux props de Fusion pour des interactions optimisées entre frontend et backend.

Aaron a également souligné l’influence de Hotwire et Stimulus pour Symfony sur Fusion, qui apporte une approche moderne et performante aux développeurs Laravel souhaitant optimiser leurs projets JavaScript. Enfin, il a clôturé son talk par une démo live illustrant la simplicité de Fusion pour écrire du PHP aux côtés du frontend. Plus d’infos sur cette vidéo.

#

Building Mobile Apps with PHP

Simon Hamp, le co-créateur et mainteneur de PHP Native, a présenté comment créer des applications mobiles natives uniquement en utilisant du PHP. 

Il a partagé son expérience de l'an passé, où il a appris à compiler PHP et à développer des extensions, compétences essentielles pour contribuer à ce projet innovant. Il a réalisé une session de live coding, en affichant son IDE et son smartphone sans virtualisation, pour montrer le fonctionnement de PHP Native avec une application iOS intégrant Livewire et PHP Native. 

Bien que le hot reload ne soit pas encore disponible et que chaque modification nécessite une recompilation manuelle, Simon a réussi à publier l’application sur l'App Store, prouvant le potentiel de la solution. PHP Native offre une alternative aux frameworks mobiles classiques, permettant aux développeurs Laravel de créer des apps en PHP. Bien que le projet soit encore en développement et nécessite des efforts pour supporter les API natives, une early access est disponible à un tarif préférentiel. À l'avenir, l'équipe prévoit d'ajouter le support pour Android et d'autres fonctionnalités des API natives qui sont pour le moment manquantes.

#

Building world-class APIs with API Platform for Laravel

Notre co-fondateur Kévin Dunglas, créateur de FrankenPHP et mainteneur de nombreuses solutions libres et open source, est monté sur scène pour présenter “API Platform pour Laravel”, un paquet qui permet de créer des API web (REST et GraphQL) de qualité, de manière extrêmement simple. API Platform est l’outil de référence dans l’écosystème Symfony pour créer des API. L’outil fête ses 10 ans cette année, et sa toute récente version 4 (annoncée lors de l’API Platform Conference), propose désormais une intégration avec Laravel et son ORM Eloquent.

Kévin Dunglas sur la scène de la LaraconEU" class="wp-image-10753

Lors de sa présentation, Kévin nous a montré comment ajouter un seul attribut #[ApiResource] sur une classe de modèle Eloquent suffisait pour : 

  • Exposer une API REST (routes GET pour les items et les collections, POST, PATCH et DELETE) entièrement fonctionnelle
  • Générer une documentation au format OpenAPI et/ou Hydra complète, toujours synchronisé avec le schéma de base de donnée
  • Disposer d’une interface graphique permettant de consulter la documentation et de tester l’API

Il nous a ensuite montré toute la puissance de l’outil, et son intégration poussée avec les fonctionnalités de Laravel : 

  • Sélection des champs à afficher avec les propriétés $visible et $hidden
  • Filtrage et tri des données via les filtres, automatiquement appliqués par Eloquent
  • Validation avancée des données avec les FormRequest
  • Authentication compatible avec le système par défaut de Laravel, avec Sanctum (authentication pour les SPA), Passport (OAuth 2) ou encore Socialite (login social via Google, LinkedIn, Facebook…)
  • Logique d’autorisation personnalisée avec les Gates et les Policies
  • Utilisation de DTO (Data Transfer Object) spécifiques pour les API
  • Branchement de logique métier sur mesure avec les processors et les providers
  • Exposition d’une API GraphQL sans avoir à changer le code
  • Amélioration des performances grâce au support natif de Octane

Cerise sur le gâteau, toutes ces fonctionnalités sont automatiquement documentées via OpenAPI et Hydra, sans que le développeur n'ait à s’en soucier. API Platform pour Laravel est d’ores et déjà disponible, et entièrement libre et gratuit. API Platform a été créé et est maintenu par notre coopérative, n’hésitez pas à nous contacter pour que nous vous aidions à le mettre en place sur vos projets !

#

Merci et à l'année prochaine !

Nous avions déjà été conquis l'année dernière : la LaraconEU s’impose définitivement comme l’une des meilleures conférences PHP en Europe pour développer son réseau et découvrir les meilleures pratiques de l’écosystème Laravel, dont l’objectif est d’optimiser la productivité.

Depuis notre dernière participation, nous nous sommes encore rapprochés de cette communauté. Notre coopérative fait partie des rares entreprises françaises partenaires du langage, nous assurant une totale légitimité pour accompagner nos clients dans leurs besoins en développement d’applications. La sortie d’API Platform Laravel, notre travail constant sur FrankenPHP et nos contributions directes à ce framework nous ont également permis d’établir des liens privilégiés avec sa core team. Nous avons hâte de poursuivre cette collaboration. En attendant, n’hésitez pas à nous contacter pour la conception, le développement et le déploiement de vos applications !

Le blog

Pour aller plus loin