2 /** @package verysimple::Phreeze */
5 * import supporting libraries
7 require_once ("IObservable.php");
10 * Observable is an abstract implementation of IObservable
12 * @package verysimple::Phreeze
13 * @author VerySimple Inc.
14 * @copyright 1997-2005 VerySimple, Inc.
15 * @license http://www.gnu.org/licenses/lgpl.html LGPL
18 abstract class Observable
implements IObservable
{
19 private $_observers = Array ();
22 * Registers an observer with this object
24 * @param IObserver $observer
26 public function AttachObserver($observer) {
28 $this->_observers
[] = & $observer;
33 * Fires and observable event.
34 * All registered observers will be notified
37 * a string, numeric or object that contains the observable message
39 * specified the "level" as defined in IObservable
41 public function Observe($obj, $ltype = OBSERVE_INFO
) {
42 foreach ( $this->_observers
as $observer ) {
43 $observer->Observe ( $obj, $ltype );