diff --git a/src/applications/conduit/controller/console/PhabricatorConduitConsoleController.php b/src/applications/conduit/controller/console/PhabricatorConduitConsoleController.php index c90dc32883..68825fb93d 100644 --- a/src/applications/conduit/controller/console/PhabricatorConduitConsoleController.php +++ b/src/applications/conduit/controller/console/PhabricatorConduitConsoleController.php @@ -1,7 +1,7 @@ setAncestorClass('ConduitAPIMethod') ->setType('class') + ->setConcreteOnly(true) ->selectSymbolsWithoutLoading(); - $class_names = array_values(ipull($classes, 'name')); - foreach ($class_names as $key => $class_name) { - $class_info = new ReflectionClass($class_name); - if ($class_info->isAbstract()) { - unset($class_names[$key]); - } - } - - return array_values($class_names); + return array_values(ipull($classes, 'name')); } } diff --git a/src/applications/drydock/blueprint/base/DrydockBlueprint.php b/src/applications/drydock/blueprint/base/DrydockBlueprint.php index 8d0982b250..87b2b273f3 100644 --- a/src/applications/drydock/blueprint/base/DrydockBlueprint.php +++ b/src/applications/drydock/blueprint/base/DrydockBlueprint.php @@ -39,13 +39,10 @@ abstract class DrydockBlueprint { $blueprints = id(new PhutilSymbolLoader()) ->setType('class') ->setAncestorClass('DrydockBlueprint') + ->setConcreteOnly(true) ->selectAndLoadSymbols(); $list = ipull($blueprints, 'name', 'name'); foreach ($list as $class_name => $ignored) { - $reflection = new ReflectionClass($class_name); - if ($reflection->isAbstract()) { - continue; - } $list[$class_name] = newv($class_name, array()); } } diff --git a/src/infrastructure/daemon/control/PhabricatorDaemonControl.php b/src/infrastructure/daemon/control/PhabricatorDaemonControl.php index 6bf66dab1b..819e038373 100644 --- a/src/infrastructure/daemon/control/PhabricatorDaemonControl.php +++ b/src/infrastructure/daemon/control/PhabricatorDaemonControl.php @@ -203,7 +203,8 @@ EOHELP $symbols = $this->loadAvailableDaemonClasses(); $symbols = ipull($symbols, 'name', 'name'); if (empty($symbols[$daemon])) { - throw new Exception("Daemon '{$daemon}' is not known."); + throw new Exception( + "Daemon '{$daemon}' is not loaded, misspelled or abstract."); } $pid_dir = $this->getControlDirectory('pid'); @@ -299,6 +300,7 @@ EOHELP $loader = new PhutilSymbolLoader(); return $loader ->setAncestorClass('PhutilDaemon') + ->setConcreteOnly(true) ->selectSymbolsWithoutLoading(); }