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));

since

3.1.2

package

Joomla.Platform

Methods

attachObserver

Adds an observer to this JObservableInterface instance.

attachObserver(\JObserverInterface $observer) : void

Ideally, this method should be called fron the constructor of JObserverInterface which should be instanciated by JObserverMapper. The implementation of this function can use JObserverUpdater

since

3.1.2

Arguments

$observer

\JObserverInterfaceThe observer to attach to $this observable subject