setAncestorClass('PhabricatorAutoEventListener') ->loadObjects(); // Load configured listeners. $config_listeners = PhabricatorEnv::getEnvConfig('events.listeners'); foreach ($config_listeners as $listener_class) { try { $listeners[] = newv($listener_class, array()); } catch (Exception $ex) { phlog($ex); } } // Add builtin listeners. $listeners[] = new DarkConsoleEventPluginAPI(); // Add application listeners. $applications = PhabricatorApplication::getAllInstalledApplications(); foreach ($applications as $application) { $app_listeners = $application->getEventListeners(); foreach ($app_listeners as $listener) { $listener->setApplication($application); $listeners[] = $listener; } } // Now, register all of the listeners. foreach ($listeners as $listener) { try { $listener->register(); } catch (Exception $ex) { phlog($ex); } } } }