PHP
0% Tamamlandı
4 Kasım 2019 7 Bölüm Orta seviye
7. Bölüm Detayları

PHP Design Patterns | Observer Pattern

En basit hali ile PHP Observer Pattern nedir? Nasıl kullanılır? Hangi amaçlara uygundur kısımlarını inceledik. Kendi servislerinizi yazarken bolca kullanmanız gereken bir tasarım desenidir.

Sorular

Siz de eğitmene bu bölüm hakkında sorular sorabilirsiniz.

Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
phpuzem
neredeyse 2 yıl önce
  • 1 Cevap
  • 0 Oy

interface Subject
{
    public function attach(Observer $observer);

    public function detach($index);

    public function notify();

}

interface Observer
{
    public function handle();
}

class Newspaper implements Subject
{
    protected $observers = [];

    public function attach(Observer $observer)
    {
        $this->observers[] = $observer;

        return $this;
    }

    public function detach($index)
    {
        unset($this->observers[$index]);
    }

    public function notify()
    {
        foreach ($this->observers as $observer) {
            $observer->handle();
        }
    }

    public function fire()
    {
        $this->notify();
    }
}

class User implements Observer
{

    protected $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    public function handle()
    {
        var_dump($this->name . ' is registered.');
    }
}

class Company implements Observer
{

    protected $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    public function handle()
    {
        var_dump($this->name . ' is registered as a company');
    }
}

$newspaper = new Newspaper();

$newspaper->attach(new User('Halil'))
    ->attach(new User('Ahmet'))
    ->attach(new User('Sultan'))
    ->attach(new Company('Phpuzem'));
//$newspaper->detach(1);
$newspaper->fire();
Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
erenergul
neredeyse 2 yıl önce
  • 0 Oy

acaba yeni bölümler ne zaman eklenecek ? şu an yeterli bilgi yok sitede. bir kaç tane dersi komple bitirmeniz lazım insanların üye olmasını istiyorsanız. kolay gelsin.

Laravel, bootstrap, vue.js, unity ve daha bir çok online eğitim- phpuzem.com
Cevapla

Geliştiricinin Seçim Kanalı

Derslere Gözat Tartışma Forumu