Skip to Content
SymfonyPartie 2 — PHP moderne pour dev JS/TSVue d'ensemble de la partie

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és readonly, 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érateur nullsafe.
  • 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/await en 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

  1. 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.
  2. Le système de types — types scalaires, nullable, union, intersection, never, mixed, void, covariance, declare(strict_types=1), et la comparaison frontale avec TS.
  3. 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.
  4. Les attributs#[...], la métadonnée native qui remplace les annotations ; comment Symfony les lit ; écrire le sien.
  5. Classes modernes — promotion de constructeur, arguments nommés, match, nullsafe, first-class callables, readonly, enum/interfaces/traits.
  6. Composer, PSR-4, namespaces, autoload — comment PHP « importe » du code, pourquoi il n’y a pas d’import, et comment tout se relie.
  7. 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).
  8. 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.