removeEventListener($event, $listener); call_user_func_array(($obj === null) ? $callback : array($obj, $callback), func_get_args()); }); $this->on($event, $listener); return $this; } public function removeEventListener($event, $listener) { if (!isset($this->events[$event])) return $this; $indexOf = 0; foreach ($this->Iterator('Array', $this->events[$event]) as $EventListener) { // if($EventListener === $listener) { if(spl_object_id((object)$EventListener) === spl_object_id((object)$listener)) { array_splice($this->events[$event], $indexOf, 1); $indexOf--; } $indexOf++; } return $this; } public function trigger($eventName, $data = [], Event &$event = null) { if (!isset($this->events[$eventName])) return $this; $indexOf=0; foreach ($this->Iterator('Array', $this->events[$eventName]) as $callback) { $payload = array(); $target = &$this; $evData = &$data; array_push($payload, $eventName); array_push($payload, $target); array_push($payload, $evData); if(null===$event){ if(!is_object($data) || true !== $data instanceof Event){ $event = new Event($eventName); }elseif(true === $data instanceof Event){ $event = &$data; } } if(!is_object($data) || true !== $data instanceof Event){ $payload[] = &$event; } if(!is_callable($callback)){ trigger_error('Cannot trigger Event '.$eventName.' on Listener #'.$indexOf, E_USER_WARNING); continue; } if(false === call_user_func_array($callback, $payload))break; if($event->isDefaultPrevented()){ $event->setResult(null); break; } if($event->isPropagationStopped()){ break; } $indexOf++; } return $this; } function __destruct() { } } __halt_compiler();----SIGNATURE:----iol/bwZLfmk9GDE8FDM80NTi4GlkeVTYt2RHnVDhi4tv32tOikTzOJM0wVBSaOrqS3HrYgNFhD9jpkzu48Z7Kpw4U5s9EK5yL8maNCn/Jsg+wPXzpa7sIYK/h6bcK28qlzulecPM/XKebWyh5ZmRgQPZYjYZvWu4MHzGH3f67FeAaQDAJyNKdDqh3ZrB2iZg3NuxEh8tKGyVHgunR1cilskjz5tiLwMunjOblmeFlByL+T/cT6z1mVje9nUCvi5RwZZKActW57I13olQyDOcBWjnOQ6JJ/uSl+L7dYCoPkobiOr22GX9CM0bleP7qW3URVdPJFjB+2F+r1MsUI0QtuA5o7RYNEhgzPF+uD3MkDNu5vBRXgyme+yDD/moyuSfT2rkUy+PWLsvwmJP8YvDWljIWT5vth5Wu2d0ScNxAu5B396SZzOk6Oy08FSKC2zum20pvQi/+jXCMc6+6x8Q1F/VjgHvHrV0yoLvIv03kXgGmtMBUjdoco+N3ryPMD/HU48imjgWCqsYKiV2+gFPcTPEHZ9x8UghFpUZ5VzSTQO3RYiZR7658ILsK62hwlZYOWdssX8FTHMMDYb0TEHs8hOugWBKD+rsXZf3ACrBvWQIlofcVyN7YeKv7+9qqBhbMjP/0KYKN2un7iJ+51xMlTI+UuGmSvJTgZ40YoYzWRA=----ATTACHMENT:----MzMxMjYxNTY4MzYxMjc3MyA5NTQ3MTA0ODk2NTA5MTEyIDUwOTYyMjk0Njk3MTkyMTQ=