emitter = new EventEmitter(); } private static function getInstance() { if (self::$instance == null) { self::$instance = new EventDispatcher(); } return self::$instance; } public static function __callStatic($name, $arguments) { if(count($arguments)==2) { $instance = self::getInstance(); $event = $arguments[0]; if($name=="on") { if(is_callable($arguments[1])) { $instance->emitter->on($event,$arguments[1]); } } if($name=="emit") { $instance->emitter->emit($event,$arguments); } } } }