Pourquoi la POO avant Laravel
Séance 1 · ~1 période
Vous êtes ici pour apprendre Laravel. Pourtant, les deux premières semaines de ce cours ne parlent pas de Laravel. Elles parlent de programmation orientée objet, la POO. Ce chapitre explique pourquoi, et comment les six séances qui viennent vont se passer.
1. Vingt lignes de Laravel
Voici deux fichiers que vous écrirez en semaine 4. Ce sont de vrais fichiers Laravel, tels qu'ils sortent d'un projet neuf.
Le contrôleur, app/Http/Controllers/PostController.php :
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use Illuminate\View\View;
class PostController extends Controller
{
public function index(): View
{
$posts = Post::latest()->get();
return view('posts.index', ['posts' => $posts]);
}
}

Le modèle, app/Models/Post.php :
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Post extends Model
{
use HasFactory;
protected $fillable = ['title', 'body'];
public function comments(): HasMany
{
return $this->hasMany(Comment::class);
}
}

Ces vingt lignes ne calculent rien. Elles déclarent des objets et des liens entre eux. Pour les lire, il faut connaître huit mots.
| Ce que vous voyez | Ce que c'est | Chapitre |
|---|---|---|
class PostController |
une classe, le moule dont on tire des objets | 1 |
extends Model |
l'héritage : Laravel a déjà écrit l'essentiel de la classe | 6 |
use HasFactory; dans la classe |
un trait, du code ajouté à la classe | 7 |
use App\Models\Post; en haut du fichier |
un import : même mot, autre chose | 2 |
Post::latest() |
un appel statique, adressé à la classe | 1 |
$this->hasMany(...) |
un appel sur une instance, adressé à un objet | 1 et 5 |
protected $fillable |
une propriété que la classe garde pour elle : l'encapsulation | 1 et 3 |
Comment::class, HasMany |
des types qui sont des classes | 5 et 7 |
new |
absent : alors qui fabrique ces objets ? | 5 et 11 |
Si ce tableau vous paraît obscur, c'est normal. La documentation de Laravel suppose que tout cela est acquis. Le but des deux prochaines semaines est simple : rendre ces vingt lignes évidentes. Rien de plus.
2. Les six séances
Tous les exemples et tous les katas racontent la même histoire : le Donjon, un petit jeu de rôle dans le terminal. Un héros, un dé, un sac, des monstres. Un seul décor, pour que votre attention aille aux concepts et pas au contexte. À la fin du bloc, au chapitre 10, vous assemblez toutes ces briques en un jeu complet, chez vous, sans code fourni.
3. Une séance type
Une séance dure cinq périodes. Elle se déroule presque toujours de la même façon.
- Un code qui sent mauvais. Cinq minutes, en binôme. Un extrait de code fonctionne, mais quelque chose cloche. Vous cherchez quoi. Ce défaut est le sujet du jour.
- La théorie. Une lecture courte, avec des exemples que vous pouvez lancer chez vous. Chaque chapitre tient en une heure de lecture.
- Le kata. Un exercice court qu'on répète, comme en arts martiaux. Un dépôt GitHub contient des tests déjà écrits et des classes vides. Vous écrivez le code qui fait passer les tests au vert, niveau par niveau. Vous poussez, et GitHub relance les tests sur une machine neuve. Vert, vous continuez. Rouge, le message dit où regarder.
- La revue. En fin de séance, on lit ensemble le code d'un binôme volontaire.
Quand vous bloquez, demandez. La première réponse sera une piste, pas la solution. Si la piste ne suffit pas après un vrai essai, vous aurez la solution, expliquée. Les premiers katas sont très guidés. Les suivants le sont de moins en moins, jusqu'au chapitre 10, où vous partez d'une feuille blanche.
4. L'IA
Vous pouvez utiliser ChatGPT, Claude ou Copilot pendant ce cours. Une seule règle : vous devez pouvoir réécrire seul ce que vous rendez. Une bonne façon de s'en servir est de lui demander d'expliquer un message d'erreur ou de critiquer votre code, puis de vérifier sa réponse en lançant les tests. Une mauvaise façon est de coller l'énoncé et de recopier la réponse. Au chapitre 10, que vous ferez seuls, notez les questions que vous lui avez posées et ce que vous en avez gardé.
5. Vos prérequis PHP
Huit questions, cinq minutes, aucune note. Répondez dans votre tête, puis retournez la carte. Trois erreurs ou plus : relisez le chapitre Introduction avant la séance 2, et dites-le au professeur.
À retenir
- Deux semaines de POO servent à lire Laravel, pas à faire de la théorie.
- Un seul décor pour les exemples et les katas : le Donjon.
- Chaque séance : un code qui cloche, une lecture courte, un kata testé, une revue.
- Les tests et la CI vous répondent tout de suite : vert, on avance ; rouge, le message dit où regarder.
- L'IA est permise, à condition de pouvoir refaire seul ce que vous rendez.
Exercices
- Faites le quiz sans relire vos notes. Comptez vos erreurs.
- Relisez les vingt lignes de Laravel et écrivez en français ce que fait, selon vous,
Post::latest()->get(). Gardez votre réponse : on la ressortira au chapitre 11. - Préparez votre machine : un compte GitHub, et un terminal où
php --versionetcomposer --versionrépondent. Le chapitre 2 s'occupe du reste.