Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Beobachtermuster im Laravel Framework

PHP-Beobachtermuster im Laravel Framework

不言
不言Original
2018-06-22 10:00:292058Durchsuche

Dieser Artikel stellt hauptsächlich das PHP-Beobachtermuster vor und analysiert die einfachen Definitions- und Verwendungstechniken des PHP-Beobachtermusters in Form von Beispielen. Freunde in Not können sich darauf beziehen

Dieser Artikel beschreibt den PHP-Beobachter Muster mit Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

<?php
//观察者模式
//抽象主题类
interface Subject
{
  public function attach(Observer $Observer);
  public function detach(Observer $observer);
  //通知所有注册过的观察者对象
  public function notifyObservers();
}
//具体主题角色
class ConcreteSubject implements Subject
{
  private $_observers;
  public function __construct()
  {
    $this->_observers = array();
  }
  //增加一个观察者对象
  public function attach(Observer $observer)
  {
    return array_push($this->_observers,$observer);
  }
  //删除一个已经注册过的观察者对象
  public function detach(Observer $observer)
  {
    $index = array_search($observer,$this->_observers);
    if($index === false || !array_key_exists($index, $this->_observers)) return false;
    unset($this->_observers[$index]);
    return true;
  }
  //通知所有注册过的观察者
  public function notifyObservers()
  {
    if(!is_array($this->_observers)) return false;
    foreach($this->_observers as $observer)
    {
      $observer->update();
    }
    return true;
  }
}
//抽象观察者角色
interface Observer
{
  //更新方法
  public function update();
}
//观察者实现
class ConcreteObserver implements Observer
{
  private $_name;
  public function __construct($name)
  {
    $this->_name = $name;
  }
  //更新方法
  public function update()
  {
    echo &#39;Observer&#39;.$this->_name.&#39; has notify&#39;;
  }
}
$Subject = new ConcreteSubject();
//添加第一个观察者
$observer1 = new ConcreteObserver(&#39;baixiaoshi&#39;);
$Subject->attach($observer1);
echo &#39;the first notify:&#39;;
$Subject->notifyObservers();
//添加第二个观察者
$observer2 = new ConcreteObserver(&#39;hurong&#39;);
echo &#39;<br/>second notify:&#39;;
$Subject->attach($observer2);
/*echo $Subject->notifyObservers();
echo &#39;<br/>&#39;;
$Subject->notifyObservers();*/
?>

Laufergebnisse:

die erste Benachrichtigung: Observerbaixiaoshi hat benachrichtigt
zweite benachrichtigen:

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist Achtung auf die chinesische PHP-Website!

Verwandte Empfehlungen:

Wie Laravel gulp verwendet, um Front-End-Ressourcen zu erstellen

So implementieren Sie das automatische Laden von Composer im Laravel-Framework

Das obige ist der detaillierte Inhalt vonPHP-Beobachtermuster im Laravel Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn