Почему не срабатывает шаблон Observer php?

Привожу код

<?php

interface Observer {
	public function putText($text);
}

interface Observable {

	public function addObserver(Observer $o);
	public function notifyObservers();


}



class PutTextOB implements Observable {

	private $_text;
	private $_observers = array();

	public function __construct($t){

		$this->_text = $t;

	}


	public function addObserver(Observer $o){
		$this->_observers[] = $o;
 	}

 	public function notifyObservers(){
 		foreach ($this->_observers as $instance) {
 			$instance->putText($this->_text);
 		}
 	}



	public function setText(){

		$this->notifyObservers();
		file_put_contents("one.txt", $this->_text, FILE_APPEND);


	}

}



// observables objects

class onePutText implements Observer {

	public function __construct(Observable $o){
		$o->addObserver($this);
	}

	public function putText($text){
		file_put_contents("changedOne.txt", $text, FILE_APPEND);
	}

}

class twoPutText implements Observer {


	public function __construct(Observable $o){
		$o->addObserver($this);
	}


	public function putText($text){
		file_put_contents("changedTwo.txt", $text, FILE_APPEND);
	}

}








$set = new PutTextOB("lol");
$set->setText();
$set->notifyObservers();

?>


Всё это описано в одном файле, так же файлы *.txt лежат в том же каталоге, если по отдельности вызывать эти объекты и вызывать метод putText то всё пишется, но в случае паттерна, должна добавиться запись, которая увы, никак не добавляется во остальные два текстовых файла.
  • Вопрос задан
  • 2328 просмотров
Решения вопроса 1
KorsaR-ZN
@KorsaR-ZN
А где вы прикрепляете слушателей?
Как он будет работать, если его события никто не слушает!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект