\JObserverInterface
Observer pattern interface for Joomla
A class that wants to observe another class must:
1) Add: implements JObserverInterface
to its class
2) Implement a constructor, that can look like this:
public function __construct(JObservableInterface $observableObject)
{
$observableObject->attachObserver($this);
$this->observableObject = $observableObject;
}
3) and must implement the instanciator function createObserver() below, e.g. as follows:
public static function createObserver(JObservableInterface $observableObject, $params = array())
{
$observer = new self($observableObject);
$observer->... = $params['...']; ...
return $observer;
}
4) Then add functions corresponding to the events to be observed,
E.g. to respond to event: $this->_observers->update('onBeforeLoad', array($keys, $reset));
following function is needed in the obser:
public function onBeforeLoad($keys, $reset) { ... }
5) Finally, the binding is made outside the observable and observer classes, using:
JObserverMapper::addObserverClassToClass('ObserverClassname', 'ObservableClassname', array('paramName' => 'paramValue'));
where the last array will be provided to the observer instanciator function createObserver.
Synopsis
Methods
public
- createObserver() — Creates the associated observer instance and attaches it to the $observableObject