protected function loadAvailableDaemonClasses() { $loader = new PhutilSymbolLoader(); return $loader->setAncestorClass('PhutilDaemon')->setConcreteOnly(true)->selectSymbolsWithoutLoading(); }
$n = 1; if (!$is_debug) { if (is_numeric($daemon)) { $n = $daemon; if ($n < 1) { throw new Exception("Count must be at least 1!"); } $daemon = idx($argv, 3); if (!$daemon) { throw new Exception("Daemon name required!"); } $pass_argv = array_slice($argv, 4); } } $loader = new PhutilSymbolLoader(); $symbols = $loader->setAncestorClass('PhutilDaemon')->selectSymbolsWithoutLoading(); $symbols = ipull($symbols, 'name'); $match = array(); foreach ($symbols as $symbol) { if (stripos($symbol, $daemon) !== false) { if (strtolower($symbol) == strtolower($daemon)) { $match = array($symbol); break; } else { $match[] = $symbol; } } } if (count($match) == 0) { throw new Exception("No daemons match! Use 'phd list' for a list of daemons."); } else {