Interface JObserverInterface
Observer pattern interface for Joomla
A class that wants to observe another class must:
- Add: implements JObserverInterface to its class
- Implement a constructor, that can look like this: public function __construct(JObservableInterface $observableObject) { $observableObject->attachObserver($this); $this->observableObject = $observableObject; }
- 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; }
- 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) { ... }
- 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.
Direct known implementers
Indirect known implementers
Package: Joomla\Platform\Observer
Copyright: Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
License: General Public License version 2 or later; see LICENSE
Since: 3.1.2
Located at joomla/observer/interface.php
Copyright: Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
License: General Public License version 2 or later; see LICENSE
Since: 3.1.2
Located at joomla/observer/interface.php
Methods summary
public static
|
#
createObserver(
Creates the associated observer instance and attaches it to the $observableObject |