The June issue of PHP Architect is out. My column this month is on dependency injection, a topic which I've been warming up to lately.
First there was CORBA. Then insane complexity of CORBA was supplanted by the intolerable complexity of EJB. Influenced by an agile mindset and the power of Unit testing, a group of java programmers began to construct simpler alternatives to EJB. Thus, the inversion of control frameworks were born. Martin Fowler came along, clarified and renamed the pattern dependency injection. This activity has originated in the Java world, but the pattern applies in PHP as well.
It is heartening to see an industry solve a problem over the course of a decade, moving from complex vendor driven middle-ware to simple patterns. The thing I like most about DI is how dead simple it really is.
He goes on to say that Fowler's article on the topic is a "must read" for anyone who will even be looking into dependency injection. He also mentions two issues he has with most of the other introductions - the examples they use and the "over-emphasis on the container".
His goal in writing this month's column was to help to avoid some of those problems while still keeping it relevant and easy to understand.