Sobes.tech
Junior — Middle

Loyihalaringizda 'Kuzatuvchi' shablonini qo'lladizmi?

sobes.tech AI

AIdan javob

Ha, "Observer" (Kuzatuvchi) naqshasi PHP loyihalarida voqealarga asoslangan modelni amalga oshirish uchun ishlatilgan bo'lib, bu yerda bir ob'ekt (sub'ekt) o'z holatidagi o'zgarishlar haqida ko'plab boshqa ob'ektlarga (kuzatuvchilarga) xabar beradi.

PHPda foydalanish misoli:

interface Observer {
    public function update(string $eventData);
}

class Subject {
    private $observers = [];

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

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

    public function changeState() {
        // Holatni o'zgartirish
        $this->notify('Holat o`zgardi');
    }
}

class ConcreteObserver implements Observer {
    public function update(string $eventData) {
        echo "Xabar olindi: $eventData\n";
    }
}

$subject = new Subject();
$observer = new ConcreteObserver();
$subject->attach($observer);
$subject->changeState();

Bu yondashuv holat o'zgarishini boshqarish mantiqini bu o'zgarishlarga javob berishdan ajratishga yordam beradi, bu esa kodning kengaytirilishini va texnik xizmat ko'rsatishni yaxshilaydi.