Exemplo n.º 1
0
//============================
class KillBot implements SplObserver
{
    public function update(SplSubject $subject)
    {
        echo __CLASS__ . " says kill all humans." . PHP_EOL;
    }
}
class LoveBot implements SplObserver
{
    public function update(SplSubject $subject)
    {
        echo __CLASS__ . " says kiss all humans." . PHP_EOL;
    }
}
// load the observable (SPLSubject)
$robots = new Observable();
// load some observers
$killbot = new KillBot();
$lovebot = new LoveBot();
// add the observers to the observable
$robots->addObserver($killbot);
$robots->addObserver($lovebot);
// notify the observers of an event
$robots->notify();
/*
Observers output:

KillBot says kill all humans
LoveBot says kiss all humans
*/
Exemplo n.º 2
0
        return $this->state;
    }
    public function setState($value)
    {
        $this->state = $value;
        $this->setChanged();
        $this->notifyObservers();
    }
}
class ObserverFoo extends ObserverAbstract
{
    public function update(ObservableInterface $observableObject, $arg)
    {
        echo 'Foo: ' . $observableObject->getState();
        echo '<br/>';
    }
}
class ObserverBar extends ObserverAbstract
{
    public function update(ObservableInterface $observableObject, $arg)
    {
        echo 'Bar: ' . $observableObject->getState();
        echo '<br/>';
    }
}
$observableObject = new \Observable();
// hook observer
$observableObject->addObserver(new \ObserverFoo());
$observableObject->addObserver(new \ObserverBar());
// notify
$observableObject->setState('todo');