downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

SplSubject::detach> <SplSubject
[edit] Last updated: Fri, 17 May 2013

view this page in

SplSubject::attach

(PHP 5 >= 5.1.0)

SplSubject::attachAttach an SplObserver

Descrição

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

Attaches an SplObserver so that it can be notified of updates.

Aviso

Esta função não está documentada; somente a lista de argumentos está disponível.

Parâmetros

observer

The SplObserver to attach.

Valor Retornado

Não há valor retornado.



add a note add a note User Contributed Notes SplSubject::attach - [2 notes]
up
0
workspace dot development at yahoo dot com
1 year ago
i think that Observer pattern is always implemented as "static" to be called from any scope, for example:
<?php
class 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 static
Observer::hereIsnoNeedToInstantiateAgain();
?>
up
0
goran
1 year 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)]);

 
show source | credits | sitemap | contact | advertising | mirror sites