Partie 2 — PHP moderne pour dev JS/TS
Public : vous codez en Next.js/TypeScript, vous avez fait du PHP il y a des années (Symfony 5), et vous n’avez pas suivi PHP 8.0 → 8.4. Cette partie remet le langage à niveau avant tout code Symfony. Pourquoi c’est la partie la plus importante pour vous : Symfony 7.4 s’appuie partout sur des fonctionnalités PHP récentes — attributs (
#[Route],#[ORM\Entity]), enums, propriétésreadonly, promotion de constructeur, types union. Sans ces bases, tout le reste paraît magique. Avec elles, Symfony devient limpide.
Ce que vous saurez faire à la fin de cette partie
- Lire et écrire du PHP 8.4 idiomatique : types stricts, enums, attributs,
readonly, promotion de constructeur,match, arguments nommés, opérateurnullsafe. - Comprendre le système de types de PHP et le comparer point par point à TypeScript (et voir où PHP est plus strict).
- Maîtriser Composer, les namespaces et l’autoload PSR-4 — le socle de tout projet Symfony.
- Savoir ce qu’apportent générateurs et Fibers, et pourquoi vous n’écrirez presque jamais d’
async/awaiten PHP. - Traduire mentalement n’importe quel bout de TypeScript en PHP moderne, et inversement.
Angle de cette partie
On n’apprend pas PHP « à partir de zéro » : vous êtes développeur. On apprend ce qui a changé et ce qui diffère de TypeScript. Chaque notion est présentée avec son équivalent JS/TS, ses pièges pour quelqu’un qui vient du JS, et son usage réel dans Symfony (pour que ça ne soit jamais gratuit).
Chapitres de cette partie
- Le PHP que vous ne connaissez pas — panorama de tout ce qui a changé depuis PHP 7 ; pourquoi PHP 8+ ressemble bien plus à TypeScript que vous ne le pensez.
- Le système de types — types scalaires, nullable, union, intersection,
never,mixed,void, covariance,declare(strict_types=1), et la comparaison frontale avec TS. - Les enums — enums purs et « backed », méthodes, interfaces, cas d’usage Symfony (statuts, rôles). L’équivalent (en mieux) des union de littéraux TS.
- Les attributs —
#[...], la métadonnée native qui remplace les annotations ; comment Symfony les lit ; écrire le sien. - Classes modernes — promotion de constructeur, arguments nommés,
match,nullsafe, first-class callables,readonly,enum/interfaces/traits. - Composer, PSR-4, namespaces, autoload — comment PHP « importe » du code, pourquoi il n’y a pas d’
import, et comment tout se relie. - Erreurs, générateurs, Fibers — exceptions, hiérarchie
Throwable, générateurs (yield), et Fibers (le modèle de concurrence — pourquoi pas d’async/await). - PHP ↔ TypeScript — la grande table de correspondance, les faux-amis, et un mémo de survie.
Prochain chapitre : 2.1 — Le PHP que vous ne connaissez pas.