Sobes.tech
Junior — Middle

Оё шумо намунаи 'Боздошташаванда'-ро дар лоиҳаҳои худ истифода бурдаед?

sobes.tech AI

Ҷавоб аз AI

Бале, шаблони "Кўзәтувчи" (Observer) PHP лойиҳаларда воқеаларга асосланган моделни амалга ошириш учун қўлланилган бўлиб, бу ерда бир объект (мавзу) ўз ҳолатидаги ўзгаришлар ҳақида кўплаб бошқа объектларга (кўзәтувчиларга) хабар беради.

PHPда қўлланиш намунаси:

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() {
        // Ҳолатни ўзгартириш
        $this->notify('Ҳолат ўзгартирилди');
    }
}

class ConcreteObserver implements Observer {
    public function update(string $eventData) {
        echo "Хабар олинди: $eventData\n";
    }
}

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

Бу ёндашув ҳолат ўзгаришларининг мантиғини бу ўзгаришларга жавоб беришдан ажратишга ёрдам беради, бу эса коднинг кенгайишини ва техник хизмат кўрсатишни яхшилайди.