Martin Aspeli wrote:
I *do* actually like the "named IAnonymousUtility" thing as a convenience, because it retains some consistency. Maybe it's slower, which would be a negative. But it also allows all the other ZCA stuff (overriding, introspection, global/local variants, etc) and API: we're just introducing a convenience.
Oh, and here's another reason: this allows registration at ZCML configuration time rather than import time (since we're not setting it up in Python) without inventing new directives: <utilty name="root" object=".roots.myRoot" provides="zope.component.IAnonymousUtility" /> Or in Grok speak: grok.global_utility(myRoot, IAnonymousUtility, name="root") I think we'd want a less icky name than IAnonymousUtility, though. Martin -- Author of `Professional Plone Development`, a book for developers who want to work with Plone. See http://martinaspeli.net/plone-book