If you've read my previous post s here, you'll notice that I advocate code testability and TDD. One of the key design concepts in achieving this is "inversion of control" or the dependency injection pattern . While I do mostly .NET stuff these days, I still dabble with PHP projects from time to time...