On Thu, Apr 24, 2008 at 10:19 AM, paragasu <paragasu@xxxxxxxxx> wrote: > wow.. this is the response i expected to see for all php expert programmer. > honestly, i don't know yet how it works. But, it seem so interesting to me. > do you have any live project making use of this one? I can't show you the code because I wrote it on company time therefore I don't own it. A very generalized example. Register events: $events = array( array('event'=>'onSave', 'class'=>'localEvents', 'method'=>'handleOnSave') ); $dispatcher = namespace_registry::get('dispatcher'); $dispatcher->lazyRegister($events); Sample save page: $record = new record; $record->name = 'Eric Butera' $isSuccess = $record->save(); $dispatcher->trigger('onSave', $record, array('isSuccess'=>$isSuccess)); Upon firing, the dispatcher would check to see if any lazy registrants exist for the onSave event. If some exist, then it will then use the configured settings to somehow load & call the defined class/method and inject it with an event notification object. Sample event handler: class localEvents { public function handleOnSave(namespace_Event $event) { echo "An onsave event is being handled, triggered in subject class ". get_class($event->getSubject()) ."\n"; $info = $event->getInfo(); if ($info['isSuccess'] === true) { // do something else! } } } Why is this useful? Because you can add functionality to your save page without touching it. This is very powerful when you have a shared code base and need to add some parts to it without breaking other sites. Since it is expected that events will be registered it is okay to rely on this functionality always being there rather than the internals of your app changing and creating nightmares. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php