[Zope3-Users] Re: IEndRequestEvent question

Philipp von Weitershausen philipp at weitershausen.de
Wed Jun 7 12:53:00 EDT 2006


Florent Guillaume wrote:
> But the base one should really send an event there.
> How about adding a IAfterCall publication event?

How about making the publication more event-y and less subclass-y in the
first place? I think instead of calling various methods on the
publication when we want things to happen, I think we should just send
out events and let individual subscribers do things (start or end
transactions, interactions, etc.).

In particular, I would replace:

* beforeTraversal and callTraversal with (the already existing, but in
the wrong place) IBeforeTraverseEvent

* afterTraversal with an IAfterTraverseEvent

* afterCall with an IAfterCallEvent (this is the one Thierry wants)

* endRequest with (the already existing) IEndRequestEvent

Of course, most of these are object events. They should be defined in
zope.publisher.interfaces and be thrown by the publisher
(zope.publisher.publish) where it currently calls the various
publication methods. (It would continue to call these for BBB reasons,
of course, but we should deprecate them).

I think Steve had some ideas in the same direction during the PyCON
sprints, but I think he ended up doing somethign else...

Philipp


More information about the Zope3-users mailing list