\JObservableInterface

Observable Subject pattern interface for Joomla

To make a class and its inheriting classes observable:
1) add: implements JObservableInterface
to its class

2) at the end of the constructor, add:
// Create observer updater and attaches all observers interested by $this class:
$this->_observers = new JObserverUpdater($this);
JObserverMapper::attachAllObservers($this);

3) add the function attachObserver below to your class to add observers using the JObserverUpdater class:
public function attachObserver(JObserverInterface $observer)
{
$this->_observers->attachObserver($observer);
}

4) in the methods that need to be observed, add, e.g. (name of event, params of event):
$this->_observers->update('onBeforeLoad', array($keys, $reset));