Slide deck reveal.js pour une présentation de 40 minutes destinée aux développeurs et développeuses PHP, couvrant la programmation défensive avec PHP moderne (PHP 8.0 → PHP 8.5).
Inspiré du talk Extremely Defensive PHP de Marco Pivetta (ocramius), modernisé avec toutes les nouveautés du langage :
- PHP 8.0 : constructor property promotion, union types, nullsafe,
throwcomme expression, named arguments, match - PHP 8.1 :
readonlyproperties, enums, intersection types,never, first-class callables, new in initializers - PHP 8.2 :
readonlyclasses, DNF types - PHP 8.3 : constantes typées
- PHP 8.4 : property hooks, asymmetric visibility, lazy objects
- PHP 8.5 : attribut
#[NoDiscard]
- Introduction
- Qu'est-ce que la programmation défensive ?
- Le système de types
- Immutabilité
- Value Objects
- Nullabilité maîtrisée
- Encapsulation
- Exceptions et résultats
- Outils & CI
- Top 10 des anti-patterns
- Mise en pratique (refactoring)
- Conclusion
Aucune build step nécessaire — toutes les ressources (reveal.js, highlight.js, GIF) sont embarquées localement dans vendor/ et assets/. Le deck fonctionne intégralement hors-ligne.
Ouvre simplement index.html dans ton navigateur (double-clic ou open index.html sur macOS).
Un serveur statique (
python3 -m http.server 8000,npx serve .) n'est nécessaire que si tu ajoutes des fichiers markdown externes ou des modules ES, ou pour tester l'export PDF via?print-pdf.
Espaceou→: slide suivanteS: speaker notes (vue présentateur)OouEsc: vue d'ensemble (overview)F: plein écranB: écran noir (pause)?: aide
Ouvrir l'URL avec ?print-pdf (ex: http://localhost:8000/?print-pdf), puis imprimer en PDF depuis Chrome.
- Slides :
index.html - Thème custom :
css/custom.css - Thème reveal.js de base :
white(modifiable dansindex.html) - Librairies vendues :
vendor/reveal.js/(reveal.js 5.1.0) etvendor/highlight.js/(highlight.js 11.9.0) - Images :
assets/
Faites-en bon usage. Si vous donnez le talk, créditer l'inspiration originale (ocramius) est apprécié.