Doctrine or any other sane ORM
What it does
The goal here is to allow models to be both encapsulated and to contain no database logic. The outcome outside of developers perspective would be probably "writing features quicker with less bugs". The current state is that our models depend on state outside of them (like for example the database) that makes reasoning about them harder (i.e. you have to think both about the state of the model itself, but also about the state of the database). The problem with lack of encapsulation is that changes to the model can be made outside of it, so by looking at the model everything looks correct, but then it turns out that it's state was changed somewhere in deep and unexpected place (e.g. controller, other model).
How I built it
4 energy drinks and a coffee
Challenges I ran into
Not enough energy drinks. And not enough time.
Accomplishments that I'm proud of
It works! And the API looks acceptable.
What I learned
That it's not that hard to write good code (AND EVEN WITH TDD)
What's next for Data-Mapper ORM
1:M relations support, nicer API for defining entites, lots of refactoring