function Event_handler($handler) { if (is_object($handler)) { return array('type' => 'object', 'object' => $handler, 'event_handler' => true); } elseif (is_string($handler) && class_exists($handler)) { return array('type' => 'class', 'class' => $handler, 'event_handler' => true); } else { if (is_array($handler)) { return array('type' => 'bootable', 'boot' => \Collection::create($handler), 'event_handler' => true); } else { return array('type' => 'bootable', 'boot' => \Executor::create($handler), 'event_handler' => true); } } }