Plone 添加事件通知程序,首选做法

Plone 添加事件通知程序,首选做法,plone,zope,Plone,Zope,我想在plone.app.blob.field.BlobField.index_html上启动一个事件,以便我可以设置订阅服务器来侦听它。订户没有问题,但显然plone.app.blob不是我的代码,所以通知有点麻烦。我已经为zope.event.notify(MyEvent(object))做了一些修补,但这是最好的方法吗?我有点期待会有一些grok魔法,让我可以将事件附加到方法。最好的方法是在Github上完成项目,并使用Mr.developer buildout工具维护和部署修补版本 稍后

我想在plone.app.blob.field.BlobField.index_html上启动一个事件,以便我可以设置订阅服务器来侦听它。订户没有问题,但显然plone.app.blob不是我的代码,所以通知有点麻烦。我已经为zope.event.notify(MyEvent(object))做了一些修补,但这是最好的方法吗?我有点期待会有一些grok魔法,让我可以将事件附加到方法。

最好的方法是在Github上完成项目,并使用Mr.developer buildout工具维护和部署修补版本


稍后,您可以签署Plone贡献协议,并将您的修补程序添加到Plone.app.blob的新版本中,这样您就不再需要任何修补程序魔法了。

您的实际最终目标是什么?每当下载某个东西时触发一个事件听起来像是一个不寻常的要求。我建议在任何情况下,您可能都不想写入ZODB?如果您不需要访问对象/BLOB本身或ZODB,为什么不使用ZPublisher中已有的一个事件/钩子(例如,zope.publisher.interfaces.EndRequestEvent的处理程序)?最终目标是记录我计划保存在var/log dir中的文件的下载者和下载时间。我意识到Z2日志显示了这一点,但我认为这可能会让我能够更好地控制我想为这个案例记录的信息,并将其与日志中的其他信息分开。作为一个更一般的问题,我猜尝试在某个地方设置通知程序是不受欢迎的?