dev-master
9999999-devA Silverstripe event emitter based on the mediator pattern
BSD-3-Clause
The Requires
The Development Requires
by Franco Springveldt
events silverstripe event mediator aspects
Wallogit.com
2017 © Pedro Peláez
A Silverstripe event emitter based on the mediator pattern
A SilverStripe event emitter based on the mediator pattern, which can be applied to run a bit of code before or after any class method (i.e. triggered) using Silverstripe's Aspects, (*1)
"silverstripe/framework": "3.*" "composer"
To install, run below from root of SilverStripe installation:, (*2)
> composer require fspringveldt/silverstripe-event-mediator
http://your-site-url?flush=1 once composer is complete the flush the manifest., (*3)
Installing the module adds the eventMediator\EventExtension to DataObject.
Let's say after each call to $A->foo() you'd like to fire off a call to $B->bar(), the following added to your composer.yml sets up the events:, (*4)
Injector:
eventMediator\EventMediator':
properties:
events:
foo:
triggerBar:
class: B
method: bar
then in $A->foo() do the following:, (*5)
class A{
function foo(){
//foo funciton body
$this->emit(__FUNCTION__);
}
}
Let's say after each call to $A->foo() you'd like to fire off a call to $B->bar(), the following in your composer.yml should do the trick:, (*6)
Injector:
'eventMediator\EventMediator':
properties:
events:
foo:
triggerBar:
class: B
method: bar
ProxiedA:
class: A
A:
class: AopProxyService
properties:
proxied: %$ProxiedA
afterCall:
foo:
- %$eventMediator\EventMediator'
All parameters from $A->foo() are sent through $B->foo() for your perusal., (*7)
A Silverstripe event emitter based on the mediator pattern
BSD-3-Clause
events silverstripe event mediator aspects