Handler

Handler sind eine spezifische Form von Subscribern, die nichts bereitstellen und meistens von Events aufgerufen werden.

Beim Aufruf eines Handlers wird kein Rückgabewert erwartet. Auch bieten Handler keine API an. Daher werden Handler meist als Funktion und nicht als Klasse implementiert. Zum Beispiel:

>>> import datetime
>>> def documentCreated(event):
...     event.doc.created = datetime.datetime.utcnow()
>>> documentCreated = component.adapter(IDocumentCreated)(documentCreated)

Die letzte Zeile markiert den Handler als Adapter von IDocumentCreated-Events. Nun wird der Handler noch registriert mit:

>>> component.provideHandler(documentCreated)

Schließlich kann die handle-Funktion verwendet werden um Handlers, die für einen Event registriert sind, aufzurufen:

>>> component.handle(DocumentCreated(doc))
>>> doc.created.__class__.__name__
'datetime'

Zum Weiterlesen