Re: zope.component.zcml and global registry

"Roger" <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <20100303130646.SM01240@mobile05>
Hi Fabio 

> Betreff: Re: [Zope-dev] zope.component.zcml and global registry
> 
> Hello roger,
> 
> * 2010-03-03 11:36, Roger wrote:
> > Not sure if I understand you correct. But what do you think 
> about the 
> > following:
> > 
> > - implement a new optional attribute useLocal=True
> >   in the directive and then configure the directive action
> >   and make use of the (local) getSiteManager method.
> > 
> > I like to use getGlobalSiteManager by default because this doesn't 
> > force a database access and load the local site manager if 
> the site is 
> > a local site.
> 
> I'm not sure what you mean with "doesn't force a database 
> access and load the local site manager". This is the 
> implementation of getSiteManager from
> zope.component._api:
> 
>     base = None
>     @hookable
>     def getSiteManager(context=None):
>         global base
>         if context is None:
>             if base is None:
>                 from zope.component.globalregistry import base
>             return base
>         else:
>             # Use the global site manager to adapt context to 
> `IComponentLookup`
>             # to avoid the recursion implied by using a local 
> `getAdapter()` call.
>             try:
>                 return IComponentLookup(context)
>             except TypeError, error:
>                 raise ComponentLookupError(*error.args)
> 
> In our use cases (ZCML registrations), context is None and 
> thus it will simply return the global registry, without any 
> database access. It is the equivalent of 
> getGlobalSiteManager, but it can be hooked (note the 
> @hookable decorator).
> 
> > Could this be an alternative concept and fit?
> 
> This would change the API, my proposed change is 
> back-compatible and does not introduce any new API (because 
> it is equivalent, indeed).

Uhh, I didn't understand your question correct.
I was thinking that the getGlobalSiteManager should
lookup the local registry. Sorry about that.

Regards
Roger Ineichen


> Best regards,
> Fabio
> 

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.