[Zope3-dev] Re: registerUtility(component,
interface) vs provideUtility(interface,
component) vs provideUtility(component, interface)
Philipp von Weitershausen
philipp at weitershausen.de
Sat Sep 2 11:45:39 EDT 2006
Christian Theune wrote:
> Philipp von Weitershausen wrote:
>> Christian Theune wrote:
>>> see subject. What's the reason that all three flavours (still?) exist? I
>>> just had a really hard time finding the spelling I need.
>> ztapi.provideUtility(interface, component) is discouraged and should go
>> away. I didn't do this for Zope 3.3 because of a lack of time.
>>
>> zope.component.provideUtility(component, interface=optional) is a
>> convenience spelling for:
>>
>> zope.component.getGlobalSiteManager().registerUtility(
>> component, interface=optional).
>>
>> The order of arguments is the same. I think Jim wants the convenience
>> functions in zope.component (provide*) to go away in favor of the
>> explicit spelling through the global site manager. I think that before
>> we do that, we should first abolish the term "site manager" from the
>> zope.component API (because we don't call it site manager anymore).
>
> Hmm. Hmm. zope.component.provide* is *very* convenient. What would the
> new spelling be?
Look two paragraphs above:
>> zope.component.getGlobalSiteManager().registerUtility(
>> component, interface=optional).
> Isn't the global site manager something else then zope.component?
No. The global site manager (we prefer to call it global component
registry nowadays) is defined in zope.component. It is always htere.
> Because zope.component uses the current thread-local site-manager,
> depending on what was set during traversal etc., isn't it?
Nope. zope.component knows nothing about thread-local site managers.
That's zope.app.component (which hooks its knowledge of thread-local
site managers into zope.component).
Philipp
More information about the Zope3-dev
mailing list