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(); ?>