I announced this on twitter yesterday, but figured I should blog about it a bit more today.
As of yesterday, I published a new PHP Framework on github: Treb
Yeah, I know, the world really doesn’t need another PHP Framework, there are tons of them out there. So why did I create this new one? Well honestly, I didn’t set out to do so. You see at numerous previous jobs: Digg, TripAdvisor, HiiDef, mojoLive — I’d ended up building or extending custom frameworks for those specific applications.
In all of those cases, a ‘stock’ framework just didn’t end up making sense. They locked you into specific ways of doing things, which may not have been what you needed to do in order to scale. While at the same time, while they provided a lot of structure, they didn’t provide certain features that I felt were necessary (such as built-in write through data caching).
So in each case, something custom got built from scratch (or something existing got customized). After doing this essentially 4 times. I was tired 🙂 With mojoLive I got the ability to take the framework that I’d written for mojoLive, to scrub it of anything specific to mojoLive, and open source it. So I did.
The moral of the story? It’s just that in the future now, when I need to start a new custom framework for another site, I don’t have to start from scratch again. I can start from Treb now that it’s open sourced. Granted right now it’s very rough as it was part of a bigger system and was just ripped out. But it’s a good starting point.
Will anyone else end up using it? I dunno, and that wasn’t the goal of releasing it. I will say that of others that have used this, they enjoyed it, in it’s simplicity. And new coders to mojoLive were committing code against it on the first day. So that’s gotta say something.
If you’d like to know more, you can read up about it on Treb’s home, and start reading it’s documentation as well.
NOTE: I’ve already been called out for Treb not having tests. No, it doesn’t, I wouldn’t argue if it began acquiring them, but it doesn’t have tests written for it because it’s a child of a rapid-startup-culture web application. I plan on writing up another blog post about that soon.