Skip to content

Commit

Permalink
add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
bwoester committed Sep 2, 2012
1 parent 0f2503e commit 28d9305
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
yii-event-interceptor
=====================

The EventInterceptor is a CComponent which raises an onEventIntercepted event
whenever the observed component raises an event. The onEventIntercepted event
contains the name of the intercepted event, as well as the intercepted event
itself.

It is mainly meant as a tool for other components and can be used like this:

~~~~~php

// create interceptor
$eventInterceptor = new EventInterceptor();

// initialize it: pass the object that should be observed. By default, the
// EventInterceptor will attach itself to all events defined by $subject.
// If you only want to intercept some special events, use:
// $eventInterceptor->initialize( $subject, array('onFoo', 'onBar') );
$eventInterceptor->initialize( $subject );

// whenever the EventInterceptor intercepted an event of $subject, it will
// raise an onEventIntercepted event. Attach an event handler to this event
// that cares for processing. The event handler can be any valid php callback:
// $eventInterceptor->onEventIntercepted = 'handleInterceptedEvent_inGlobalFunction';
// $eventInterceptor->onEventIntercepted = array( 'Foo', 'handleInterceptedEvent_inStaticMethod' );
// $eventInterceptor->onEventIntercepted = array( $obj, 'handleInterceptedEvent_inMethod' );
$eventInterceptor->onEventIntercepted = function( InterceptionEvent $event ) {

$sender = $event->sender; // will always be the EventInterceptor

$originalEvent = $event->getInterceptedEvent();
$originalSender = $event->getInterceptedEvent()->sender; // our $subject

// also available:
$originalEventName = $event->getInterceptedEventName();

};
~~~~~

0 comments on commit 28d9305

Please sign in to comment.