[Zope-dev] Non-ZCML config for ZCA. (Was: Anyone want to do Google Summer of code mentoring for PSF?)

Chris McDonough chrism at plope.com
Mon Mar 21 12:59:03 EDT 2011


On Mon, 2011-03-21 at 15:53 +0100, Lennart Regebro wrote:
> On Mon, Mar 21, 2011 at 15:28, Jim Fulton <jim at zope.com> wrote:
> > This might be OK for @implements and maybe @adapts, which describe
> > behavior, but start feeling wonky to me for something like: @utility.
> 
> Well, the wonkyness comes from @utility *not* being inherited, while
> @implements would be. That could be confusing.
> 
> It wold be possible to let @utility be inherited if it's done by
> scanning, though. But under what name in that case? I think that
> possibly would be even *more* confusing.
> 
> It may be that decorators isn't the right answer for registration. In
> that case scanning is an option, unless we simply go for straight
> imperative configuration.
> 
> @implementer(IMyFace)
> @adapter(IMyFoot)
> class FootInFace(object):
>      def __init__(self, foot, face)
>         self.foot = foot
>         self.face = face
> 
> component.utility(FootInFace())
> 
> It's easy and clear, but has the drawback of encouraging that
> registration is done on import time, while scanning separates the
> registration from the definition. I'm not sure how important that is.

It's important to me, at least.  Registration-on-import effectively
requires that there only be a single component registry for all
applications in a process.  This is often fine for a given deployment,
but as a framework strategy it seems very limiting.

- C




More information about the Zope-Dev mailing list