Bear with me. I'm still being put together.
When I'm finished, I'll be the one looking after your database, so your objects don't have to.
Articulate is a data mapper ORM for Laravel, and an alternative to Eloquent. Your entities stay plain PHP objects, and nothing is written to the database until you say so. Built for Laravel 13 on PHP 8.5.
What I'll do once I'm built
Your objects stay yours
Entities are shaped by your rules, not your tables. Constructors that only
allow valid states, methods like ship(), and nothing public
that shouldn't be.
I map more than columns
Money, email addresses, a whole embedded address. Your objects can use real types, and don't have to look like your schema.
I keep the magic out
Real, typed properties instead of an attribute bag. Your editor and static analysis already know what's there, no helpers needed.
It's still Laravel
Route binding, validation, queues, auth, factories and tests all work the way you'd expect. Alongside Eloquent, too.