I think Matthew is pointing out that there have always been doubts about utilising a DI container in light weight languages like PHP, Python, and Ruby. In essence, it's remarkably hard to create a valid use case for a DI container. You can create any number of artificial examples, but the light weightedness of PHP, it's tolerance for loose coupling, and the minimal code it generates (all reasons why we use it) make using DI overkill - probably in 95% or more of the common uses for PHP.
There are some interesting case studies in Ruby if you go looking where individuals have experiemented in writing a DI container/framework for Ruby. Ruby has several Di containers/frameworks - nearly all them are classified as dormant. Ruby has one very neat thing over PHP - you can overload object instantiation. This is not to say a DI container is useless or meaningless, but the classical concept of a DI container from Java or C# is only marginally useful in PHP. In most respects all you really need is a little substitution and light mapping. If that's the goal of any future DI work in ZF, then please, fire on all cylinders. Whether that would qualify as a DI container or not is anyone's guess ;). Once you start accumulating more features, more complex mapping, and more classical injection methods - then it will bury itself into oblivion as an overarchitected mess 99% of PHP developers just do not need. My 2c :) Paddy Pádraic Brady http://blog.astrumfutura.com http://www.survivethedeepend.com OpenID Europe Foundation Irish Representative ________________________________ From: keith Pope <mute.p...@googlemail.com> To: fw-general@lists.zend.com Sent: Fri, October 30, 2009 7:19:25 PM Subject: Re: [fw-general] Discontinuing Zend Entity in favour of Doctrine integration 2009/10/30 Matthew Weier O'Phinney <matt...@zend.com>: > -- keith Pope <mute.p...@googlemail.com> wrote > (on Friday, 30 October 2009, 04:43 PM +0000): >> 2009/10/30 Matthew Weier O'Phinney <matt...@zend.com>: >> > -- keith Pope <mute.p...@googlemail.com> wrote >> > (on Friday, 30 October 2009, 04:02 PM +0000): >> > > 2009/10/30 Ralph Schindler <ralph.schind...@zend.com> : >> > > Also will we be deprecating Zend_Db as if we have tight Doctrine >> > > integration is there any reason to keep Zend_Db? >> > >> > There are plenty of reasons to keep Zend_Db. Not everyone will be using >> > Doctrine, and for many one-off types of applications (single tables, or >> > multiple tables with no relations, etc.), having Zend_Db around will >> > continue to be essential. Additionally, one aspect I'd like to explore >> > with the Doctrine folks is potentially allowing Zend_Db adapters as >> > Doctrine RDBMS adapters; this would provide some very interesting >> > integration points. >> >> Sounds interesting I look forward to seeing this initiative develop >> further, I would be happy to help in any way I can :) >> >> Once we have the integration especially with doctrine 2 would there be >> any further plans to look at things like dependency injection, >> criteria objects and repositories or any other DDD tools? To me having >> a full suite of tools like this would be a great long term goal? > > DI is something we're already planning for -- you'll note the "unified > constructor" pattern in all new components. Whether or not we'll have a > DI _container_ is another question; I'm not entirely convinced DI > containers have a good place in stateless applications, but I'll let > Ralph talk more to that point. :) That is an interesting point, I dont quite understand how state affects object dependencies or is the container an unnecessary overhead when you are working in a limited state environment? Something I may have to ponder.... > > As for criteria objects, we've just approved another of Ben's > components, some extensions to Zend_Db_Expr. One aspect I particularly > like with it is that, combined with Zend_Db_Select, we are getting to a > point where we have an almost complete criteria object for select > operations. This could certainly be adapted for use with DDD fairly > easily. Regarding repositories, Zend_Application_Bootstrap actually > already acts as one in many ways -- though we may do more with this > and/or service locators for 2.0. > > -- > Matthew Weier O'Phinney > Project Lead | matt...@zend.com > Zend Framework | http://framework.zend.com/ > -- ------------ http://www.thepopeisdead.com