Ce que fait vraiment vendor/autoload.php : de require_once à PSR-4
Chaque projet PHP moderne commence par require 'vendor/autoload.php'. Ce que cette ligne remplace, comment l'écrire soi-même en dix lignes, et ce que Composer fait de plus.
Développeur full stack freelance
Je suis développeur full stack depuis 20 ans, freelance depuis 2014, basé à Bordeaux et en télétravail. Côté back, Symfony, API Platform et PHP ; côté front, Nuxt.js, Vue.js et TypeScript.
Je viens de terminer une mission de cinq ans chez un fournisseur d'énergie bordelais, sur les applications clients professionnels et particuliers, les API internes et la gestion documentaire. Avant le freelance, huit ans en ESN sur des applications de grands comptes (banque, énergie, secteur public).
Sur Malt : 58 missions réalisées, 5/5 sur 44 avis.
J'ai été mentor OpenClassrooms pendant trois ans (parcours développeur PHP / Symfony) et formateur Laravel pour des équipes de développement et l'université Toulouse III. J'ai créé ce site pour apprendre à coder en codant : de vrais frameworks qui tournent dans le navigateur, des exercices validés par des tests, rien à installer. Les articles du blog partent de ces exercices et creusent les nouveautés de Symfony, Laravel et PHP.
Je suis disponible pour de nouvelles missions : écrivez-moi via Malt, LinkedIn ou le formulaire de contact.
Chaque projet PHP moderne commence par require 'vendor/autoload.php'. Ce que cette ligne remplace, comment l'écrire soi-même en dix lignes, et ce que Composer fait de plus.
Symfony 8.2 chiffre une colonne Doctrine avec un attribut, et la rend cherchable avec un index aveugle. Contre quoi cela protège, ce que la base perd, et comment chiffrer une colonne qui contient déjà des données.
Comment le bac à sable d'apprendre.forelse.fr met tout un projet Symfony ou Laravel dans un lien, sans base de données, et pourquoi un code partagé ne s'exécute pas tout seul.
Symfony 8.2 transforme une ValidationFailedException en réponse 422. L'occasion de revoir ce qu'une API doit répondre quand une requête est invalide : codes HTTP, format Problem Details, codes stables et journaux.
Symfony 8.2 retient sur le jeton chaque preuve d'identité donnée pendant la session. De quoi écrire une 2FA par SMS sans bundle, sans rôle ajouté au jeton et sans subscriber : un authenticator pour le code, un voter qui exige les deux preuves, un point d'entrée qui redemande celle qui manque.
Jeton invalide, 419, CSRF verification failed : ce que le jeton CSRF protège vraiment, quand il est nécessaire à l'heure des cookies SameSite, et comment Symfony, Laravel, Django et Rails le gèrent.