PHP orienté objet et Composer : coder comme un pro
PHP orienté objet et Composer est un cours de niveau intermédiaire de 6 leçons (environ 3 h 13), avec 19 exercices et 18 questions de quiz. Prérequis : PHP fondamentaux. Les exercices sont exécutés et corrigés dans une sandbox côté serveur.
- PHP
- Intermédiaire
- 6 leçons
- 3 h 13
- 19 exercices
- Exercices exécutés dans une sandbox serveur
Le cours en bref
Ce cours fait passer du PHP procédural au PHP professionnel. Tu modélises des objets métier avec classes, encapsulation, héritage, interfaces et enums, tu gères les erreurs avec des exceptions, puis tu structures un projet avec les namespaces, Composer et l'autoload PSR-4. C'est la base indispensable avant Laravel ou Symfony.
Ce que tu sauras faire
- Concevoir des classes typées avec promotion de constructeur, propriétés readonly et encapsulation
- Utiliser héritage, classes abstraites, interfaces et traits à bon escient
- Modéliser des valeurs fermées avec les enums et des objets valeur avec des constructeurs nommés
- Gérer les erreurs avec des exceptions SPL et métier
- Structurer un projet avec namespaces, Composer et l'autoload PSR-4
Programme des 6 leçons
- Déclarer une classe avec des propriétés typées, un constructeur et des méthodes
- Instancier des objets et appeler leurs méthodes avec ->
- Utiliser la promotion de constructeur et les propriétés readonly
Classes et objetsConstructeur et promotionPropriétés readonly
- 02
Encapsulation et héritage
- Protéger l'état d'un objet avec private et protected et des méthodes de contrôle
- Créer une classe enfant avec extends, parent:: et la redéfinition de méthodes
- Utiliser les classes abstraites, final et l'attribut #[\Override]
- 03
Interfaces, polymorphisme et traits
- Définir un contrat avec une interface et l'implémenter dans plusieurs classes
- Écrire du code polymorphe qui dépend d'une interface plutôt que d'une classe concrète
- Réutiliser du code transversal avec un trait
- 04
Membres statiques, constantes et énumérations
- Distinguer membres d'instance et membres statiques, et utiliser self:: et static::
- Déclarer des constantes de classe typées (PHP 8.3)
- Modéliser un ensemble fermé de valeurs avec une enum, avec méthodes et valeurs associées
- 05
Gérer les erreurs avec les exceptions
- Lever et intercepter des exceptions avec throw, try, catch et finally
- Choisir la bonne exception SPL et créer ses propres classes d'exception
- Organiser la gestion des erreurs : échouer tôt, attraper au bon niveau
- 06
Namespaces, Composer et autoload PSR-4
- Organiser son code avec des namespaces et l'instruction use
- Initialiser un projet Composer, installer des dépendances et comprendre composer.json et composer.lock
- Configurer l'autoload PSR-4 pour charger les classes sans require
Projet final
Moteur de commandes d'une boutique en ligne
Construis, sans framework, le cœur métier d'une boutique sous forme de projet Composer : des objets valeur (Prix en centimes, Email), des entités (Produit, Commande, LigneCommande), une enum StatutCommande avec ses transitions, une interface MoyenDePaiement avec deux implémentations et des exceptions métier (StockInsuffisant, TransitionInterdite). Un script public/index.php simule le passage d'une commande et affiche un récapitulatif ; quelques tests PHPUnit vérifient les règles principales.
Livrables
- Un projet Composer avec autoload PSR-4 (App\ → src/, Tests\ → tests/) et composer.lock versionné
- Les classes, interfaces, enums et exceptions dans des fichiers séparés respectant PSR-4
- Un script de démonstration public/index.php
- Au moins cinq tests PHPUnit lancés avec composer test
Critères d'évaluation
- Les invariants métier sont garantis par les classes (encapsulation, readonly, validation dans les constructeurs)
- Le code dépend d'interfaces et reçoit ses dépendances par injection
- Les statuts sont modélisés par une enum et les transitions interdites lèvent une exception métier
- Les erreurs sont gérées par des exceptions précises, jamais avalées
- La structure Composer et les namespaces sont corrects ; les tests passent
Questions fréquentes
Faut-il connaître la POO pour apprendre Laravel ou Symfony ?
Oui. Ces frameworks reposent entièrement sur les classes, les interfaces, l'injection de dépendances, les namespaces et Composer : ce cours en donne les bases nécessaires.
Qu'est-ce que Composer ?
Composer est le gestionnaire de dépendances de PHP. Il installe les bibliothèques déclarées dans composer.json, fige leurs versions dans composer.lock et génère un autoloader pour charger les classes automatiquement.
Quelles nouveautés récentes de PHP sont abordées ?
Promotion de constructeur, propriétés et classes readonly, enums, expression match, arguments nommés, constantes de classe typées et attribut #[\Override] de PHP 8.3, ainsi que clone avec modification de propriétés et attribut #[\NoDiscard] de PHP 8.5.
Les exercices nécessitent-ils une installation ?
Les exercices de code s'exécutent sur la plateforme avec PHP 8.5. Seule la tâche pratique sur Composer demande une installation locale de PHP et de Composer.
Ce cours, raconté pour ton métier
Dis ce que tu veux savoir faire : « PHP orienté objet et Composer » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.