Skip to content
ignitae
Academy
Modern PHP, the boring parts done right
Value objects, collections and failures in plain PHP 8.4, no framework required.
Syllabus
Values, not arrays
An array with the right keys is not a type
Money: cents that add up (exercise)
Order status: an enum with rules (exercise)
Collections without foreach soup
map, filter, reduce, and when a loop is still right
Collection: map, filter, reduce without the soup (exercise)
Log pipeline: generators that stop early (exercise)
Failing well
Exceptions as types, invariants in constructors
Email: parse, don't validate (exercise)
Invoice: report every problem, not the first (exercise)