Re: zope.component.zcml and global registry

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

> Betreff: [Zope-dev] zope.component.zcml and global registry
> 
> Hi folks,
> 
> the ZCML directives in zope.component register components 
> using the utility method handler, which looks like:
> 
>     def handler(methodName, *args, **kwargs):
>         method = 
> getattr(zope.component.getGlobalSiteManager(), methodName)
> 
> In our company-specific framework (which is far far from 
> zope3, and only uses the bicycle repair kit), we use 
> different registries per application, similarly to repoze.bfg.
> 
> Everything works, included code which relies on the 
> zope.component's API, thanks to the hooks on getSiteManager. 
> Those ZCML directives use the getGlobalSiteManager though, 
> which is not hookable and thus we had to reimplement the ZCML 
> directives we need to call getSiteManager instead of 
> getGlobalSiteManager.
> 
> By default, getSiteManager returns the global registry, so I 
> don't see any obvious reason why the ZCML directives make use 
> of getGlobalSiteManager.
> repoze.bfg, for example, reimplemented the ZCML directives as 
> we did, but I'd love to be able to use the implementation 
> from zope.component.
> 
> Any idea? Would you kill me if I propose to change the 
> registration handler to use getSiteManager instead? :)

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.

My personal goal is to avoid any Zope database access which is 
not really needed. Because we use MongoDB as object storage
and we only have a few items in the Zope database. Things
like a local component registry get only rarly used and loaded
in our setup.

Could this be an alternative concept and fit?

Regards
Roger Ineichen

> Thanks,
> 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 )
> 

_______________________________________________
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.