[dev] [commits] Horde branch master updated. 104e3198ce8b82e1a469dce43420d2d6fa7e2a7d
Michael M Slusarz
slusarz at horde.org
Thu May 27 21:56:54 UTC 2010
Quoting Michael Rubinsky <mrubinsk at horde.org>:
> Quoting Michael M Slusarz <slusarz at horde.org>:
>
>> Quoting Michael Rubinsky <mrubinsk at horde.org>:
>>
>>> Quoting Michael M Slusarz <slusarz at horde.org>:
>>>
>>>>
>>>> commit e433901b802136256a094ae1f870853e7f512e02
>>>> Author: Michael M Slusarz <slusarz at curecanti.org>
>>>> Date: Wed May 26 11:34:06 2010 -0600
>>>>
>>>> Refactor Horde_Db injectors.
>>>>
>>>> Forgot that individual subsystems could potentially define a custom SQL
>>>> configuration. Therefore, we need a Horde_Db injector with a
>>>> factory/singleton to override the base DB for these subsystems (and
>>>> reuse the base DB object if no custom config is given).
>>>>
>>>> Rename Horde_Db_Adapter_Base to Horde_Db_Base and change to a shortcut
>>>> to return the base Horde DB object.
>>>>
>>>
>>> This breaks being able to find other objects' Horde_Db dependency
>>> automatically using type hints. e.g., The various Content_Type_*
>>> classes depend on Horde_Db_Adapter_Base, but now the injector's
>>> dependency finder can no longer locate the binder since it has
>>> been renamed to Horde_Db_Base.
>>
>> In other words Horde_Db_Adapter_Base just needs to be changed to
>> Horde_Db_Base there (?)
>
> No, because that's not the name of the class that it depends on. The
> injector can automatically resolve an object's dependencies by
> looking the type hints in that object's constructor - it then,as I
> understand it, looks for a binder that matches the name of the class
> that it depends on. Changing the name of the binder from
> Horde_Db_Adapter_Base to Horde_Db_Base messes this up, as the class
> we are looking for is not Horde_Db_Base.
As mentioned in the post to Chuck, the problem is that this assumes
that Horde_Db_Adapter_Base will always be a single object in any one
Horde installation. But there can be a bunch of different
Horde_Db_Adapter_Base objects that will be used based on the local
configuration.
I changed the name as such simply because 'Horde_Db_Adapter_Base' was
confusing in that regard - that there was one DB object to rule them
all. However, I see the need to have that name defined as such for
these type hinting binding cases. I have no problem renaming the
Horde_Db_Base binder back to Horde_Db_Adapter_Base to provide an easy
injector to the default horde DB setup.
michael
--
___________________________________
Michael Slusarz [slusarz at horde.org]
More information about the dev
mailing list