SplSubject::attach

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

SplSubject::attachПрисоединить наблюдателя (объект класса SplObserver)

Описание

public SplSubject::attach(SplObserver $observer): void

Присоединяет SplObserver, чтобы он мог получать уведомления об обновлениях.

Внимание

Функцию пока не задокументировали; для знакомства доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для присоединения.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Добавить

Примечания пользователей 2 notes

up
2
workspace dot development at yahoo dot com
13 years ago
i think that Observer pattern is always implemented as "static" to be called from any scope, for example:<?phpclass Observer {     //attach here the caller's scope     private static $stackTrace = array( );     public static function wasTriggeredOnce() {          //...if is not in the stack, then:          self::$stackTrace[] = max( debug_backtrace( ) );     }}class YourFramework {     public function launchPlatform() {          //could not let user to launch application twice!          Observer::wasTriggeredOnce();     }}//cause is staticObserver::hereIsnoNeedToInstantiateAgain(); ?>
up
1
goran
13 years ago
The most obvious storage type for observers (stored in attach()) is array. In order to be able to detach attached objects, you should be able to identify it inside observer storage.I suggest you attach observers this way:$this->_observers[spl_object_hash($observer)] = $observer;so you can detach it later if you need:unset($this->_observers[spl_object_hash($observer)]);
To Top