mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-18 04:42:40 +01:00
Use PhutilClassMapQuery instead of PhutilSymbolLoader
Summary: Use `PhutilClassMaQuery` instead of `PhutilSymbolLoader`, mostly for consistency. Depends on D13588. Test Plan: Poked around a bunch of pages. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D13589
This commit is contained in:
parent
7938d9a529
commit
368f359114
73 changed files with 180 additions and 257 deletions
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('AlmanacManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
4
scripts/cache/manage_cache.php
vendored
4
scripts/cache/manage_cache.php
vendored
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorCacheManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -16,8 +16,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorDaemonManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOHELP
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DivinerWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DrydockManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -15,8 +15,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorFactManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorFilesManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorLipsumManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorMailManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -15,8 +15,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorRepositoryManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSearchManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorAuditManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorAuthManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('CelerityManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorConfigManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorFeedManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('HarbormasterManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorHunksManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorInternationalizationManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPhortuneManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPolicyManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSystemRemoveWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorWorkerTriggerManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorWorkerManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -14,8 +14,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSMSManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
|
@ -160,9 +160,9 @@ try {
|
|||
exit(1);
|
||||
}
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorStorageManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$patches = PhabricatorSQLPatchList::buildAllPatches();
|
||||
|
||||
|
|
|
@ -190,11 +190,10 @@ try {
|
|||
$user->getUsername()));
|
||||
}
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSSHWorkflow')
|
||||
->loadObjects();
|
||||
|
||||
$workflow_names = mpull($workflows, 'getName', 'getName');
|
||||
->setUniqueMethod('getName')
|
||||
->execute();
|
||||
|
||||
if (!$original_argv) {
|
||||
throw new Exception(
|
||||
|
@ -210,7 +209,7 @@ try {
|
|||
$user->getUsername(),
|
||||
'git clone',
|
||||
'hg push',
|
||||
implode(', ', $workflow_names)));
|
||||
implode(', ', array_keys($workflows))));
|
||||
}
|
||||
|
||||
$log_argv = implode(' ', $original_argv);
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
final class PhabricatorConduitTestCase extends PhabricatorTestCase {
|
||||
|
||||
public function testConduitMethods() {
|
||||
$methods = id(new PhutilSymbolLoader())
|
||||
$methods = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('ConduitAPIMethod')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
// We're just looking for a side effect of ConduitCall construction
|
||||
// here: it will throw if any methods define reserved parameter names.
|
||||
|
|
|
@ -139,34 +139,10 @@ abstract class ConduitAPIMethod
|
|||
}
|
||||
|
||||
public static function loadAllConduitMethods() {
|
||||
static $method_map = null;
|
||||
|
||||
if ($method_map === null) {
|
||||
$methods = id(new PhutilSymbolLoader())
|
||||
->setAncestorClass(__CLASS__)
|
||||
->loadObjects();
|
||||
|
||||
foreach ($methods as $method) {
|
||||
$name = $method->getAPIMethodName();
|
||||
|
||||
if (empty($method_map[$name])) {
|
||||
$method_map[$name] = $method;
|
||||
continue;
|
||||
}
|
||||
|
||||
$orig_class = get_class($method_map[$name]);
|
||||
$this_class = get_class($method);
|
||||
throw new Exception(
|
||||
pht(
|
||||
'Two Conduit API method classes (%s, %s) both have the same '.
|
||||
'method name (%s). API methods must have unique method names.',
|
||||
$orig_class,
|
||||
$this_class,
|
||||
$name));
|
||||
}
|
||||
}
|
||||
|
||||
return $method_map;
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass(__CLASS__)
|
||||
->setUniqueMethod('getAPIMethodName')
|
||||
->execute();
|
||||
}
|
||||
|
||||
public static function getConduitMethod($method_name) {
|
||||
|
|
|
@ -19,10 +19,9 @@ final class ConduitQueryConduitAPIMethod extends ConduitAPIMethod {
|
|||
}
|
||||
|
||||
protected function execute(ConduitAPIRequest $request) {
|
||||
$classes = id(new PhutilSymbolLoader())
|
||||
$classes = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('ConduitAPIMethod')
|
||||
->setType('class')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$names_to_params = array();
|
||||
foreach ($classes as $class) {
|
||||
|
|
|
@ -47,14 +47,10 @@ final class PhabricatorConduitMethodQuery
|
|||
}
|
||||
|
||||
private function getAllMethods() {
|
||||
static $methods;
|
||||
if ($methods === null) {
|
||||
$methods = id(new PhutilSymbolLoader())
|
||||
->setAncestorClass('ConduitAPIMethod')
|
||||
->loadObjects();
|
||||
$methods = msort($methods, 'getSortOrder');
|
||||
}
|
||||
return $methods;
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('ConduitAPIMethod')
|
||||
->setSortMethod('getSortOrder')
|
||||
->execute();
|
||||
}
|
||||
|
||||
private function filterMethods(array $methods) {
|
||||
|
|
|
@ -9,9 +9,9 @@ final class PhabricatorConfigCoreSchemaSpec
|
|||
public function buildSchemata() {
|
||||
// Build all Lisk table schemata.
|
||||
|
||||
$lisk_objects = id(new PhutilSymbolLoader())
|
||||
$lisk_objects = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorLiskDAO')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$counters = array();
|
||||
foreach ($lisk_objects as $object) {
|
||||
|
|
|
@ -155,9 +155,9 @@ final class PhabricatorConfigSchemaQuery extends Phobject {
|
|||
$databases = $this->getDatabaseNames();
|
||||
$info = $this->getAPI()->getCharsetInfo();
|
||||
|
||||
$specs = id(new PhutilSymbolLoader())
|
||||
$specs = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorConfigSchemaSpec')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$server_schema = new PhabricatorConfigServerSchema();
|
||||
foreach ($specs as $spec) {
|
||||
|
|
|
@ -6,19 +6,13 @@ final class DarkConsoleCore extends Phobject {
|
|||
const STORAGE_VERSION = 1;
|
||||
|
||||
public function __construct() {
|
||||
$symbols = id(new PhutilSymbolLoader())
|
||||
->setType('class')
|
||||
$this->plugins = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DarkConsolePlugin')
|
||||
->selectAndLoadSymbols();
|
||||
->execute();
|
||||
|
||||
foreach ($symbols as $symbol) {
|
||||
$plugin = newv($symbol['name'], array());
|
||||
if (!$plugin->shouldStartup()) {
|
||||
continue;
|
||||
}
|
||||
foreach ($this->plugins as $plugin) {
|
||||
$plugin->setConsoleCore($this);
|
||||
$plugin->didStartup();
|
||||
$this->plugins[$symbol['name']] = $plugin;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -62,10 +62,6 @@ abstract class DarkConsolePlugin extends Phobject {
|
|||
return $this->getRequest()->getRequestURI();
|
||||
}
|
||||
|
||||
public function shouldStartup() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function didStartup() {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -6,8 +6,7 @@ abstract class PhabricatorDaemonManagementWorkflow
|
|||
private $runDaemonsAsUser = null;
|
||||
|
||||
final protected function loadAvailableDaemonClasses() {
|
||||
$loader = new PhutilSymbolLoader();
|
||||
return $loader
|
||||
return id(new PhutilSymbolLoader())
|
||||
->setAncestorClass('PhutilDaemon')
|
||||
->setConcreteOnly(true)
|
||||
->selectSymbolsWithoutLoading();
|
||||
|
|
|
@ -12,11 +12,11 @@ final class PhabricatorDashboardPanelSearchApplicationCustomField
|
|||
}
|
||||
|
||||
public function renderEditControl(array $handles) {
|
||||
|
||||
$engines = id(new PhutilSymbolLoader())
|
||||
$engines = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationSearchEngine')
|
||||
->loadObjects();
|
||||
$engines = mfilter($engines, 'canUseInPanelContext');
|
||||
->setFilterMethod('canUseInPanelContext')
|
||||
->execute();
|
||||
|
||||
$all_apps = id(new PhabricatorApplicationQuery())
|
||||
->setViewer($this->getViewer())
|
||||
->withUnlisted(false)
|
||||
|
|
|
@ -12,11 +12,10 @@ final class PhabricatorDashboardPanelSearchQueryCustomField
|
|||
}
|
||||
|
||||
public function renderEditControl(array $handles) {
|
||||
|
||||
$engines = id(new PhutilSymbolLoader())
|
||||
$engines = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationSearchEngine')
|
||||
->loadObjects();
|
||||
$engines = mfilter($engines, 'canUseInPanelContext');
|
||||
->setFilterMethod('canUseInPanelContext')
|
||||
->execute();
|
||||
|
||||
$value = $this->getFieldValue();
|
||||
|
||||
|
|
|
@ -37,9 +37,10 @@ final class DifferentialLandingActionMenuEventListener
|
|||
return null;
|
||||
}
|
||||
|
||||
$strategies = id(new PhutilSymbolLoader())
|
||||
$strategies = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DifferentialLandingStrategy')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($strategies as $strategy) {
|
||||
$viewer = $event->getUser();
|
||||
$action = $strategy->createMenuItem($viewer, $revision, $repository);
|
||||
|
|
|
@ -64,9 +64,10 @@ final class DiffusionSymbolController extends DiffusionController {
|
|||
$external_query->withLanguages(array($request->getStr('lang')));
|
||||
}
|
||||
|
||||
$external_sources = id(new PhutilSymbolLoader())
|
||||
$external_sources = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DiffusionExternalSymbolsSource')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$results = array($symbols);
|
||||
foreach ($external_sources as $source) {
|
||||
$results[] = $source->executeQuery($external_query);
|
||||
|
|
|
@ -414,10 +414,9 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
|||
$version['atom'] = DivinerAtom::getAtomSerializationVersion();
|
||||
$version['rules'] = $this->getRules();
|
||||
|
||||
$atomizers = id(new PhutilSymbolLoader())
|
||||
$atomizers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DivinerAtomizer')
|
||||
->setConcreteOnly(true)
|
||||
->selectAndLoadSymbols();
|
||||
->execute();
|
||||
|
||||
$atomizer_versions = array();
|
||||
foreach ($atomizers as $atomizer) {
|
||||
|
|
|
@ -88,14 +88,12 @@ final class DoorkeeperImportEngine extends Phobject {
|
|||
}
|
||||
|
||||
if (!$this->localOnly) {
|
||||
$bridges = id(new PhutilSymbolLoader())
|
||||
$bridges = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DoorkeeperBridge')
|
||||
->loadObjects();
|
||||
->setFilterMethod('isEnabled')
|
||||
->execute();
|
||||
|
||||
foreach ($bridges as $key => $bridge) {
|
||||
if (!$bridge->isEnabled()) {
|
||||
unset($bridges[$key]);
|
||||
}
|
||||
$bridge->setViewer($viewer);
|
||||
$bridge->setThrowOnMissingLink($this->throwOnMissingLink);
|
||||
}
|
||||
|
|
|
@ -120,9 +120,9 @@ final class PhabricatorAsanaConfigOptions
|
|||
|
||||
$viewer = $request->getUser();
|
||||
|
||||
$publishers = id(new PhutilSymbolLoader())
|
||||
$publishers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DoorkeeperFeedStoryPublisher')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$out = array();
|
||||
$out[] = pht(
|
||||
|
|
|
@ -125,9 +125,9 @@ abstract class DoorkeeperFeedWorker extends FeedPushWorker {
|
|||
$viewer = $this->getViewer();
|
||||
$object = $this->getStoryObject();
|
||||
|
||||
$publishers = id(new PhutilSymbolLoader())
|
||||
$publishers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('DoorkeeperFeedStoryPublisher')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($publishers as $publisher) {
|
||||
if (!$publisher->canPublishStory($story, $object)) {
|
||||
|
|
|
@ -23,6 +23,7 @@ final class FeedPublisherWorker extends FeedPushWorker {
|
|||
);
|
||||
|
||||
// Find and schedule all the enabled Doorkeeper publishers.
|
||||
// TODO: Use PhutilClassMapQuery?
|
||||
$doorkeeper_workers = id(new PhutilSymbolLoader())
|
||||
->setAncestorClass('DoorkeeperFeedWorker')
|
||||
->loadObjects($argv);
|
||||
|
|
|
@ -882,18 +882,9 @@ final class PhabricatorFile extends PhabricatorFileDAO
|
|||
}
|
||||
|
||||
public static function buildAllEngines() {
|
||||
$engines = id(new PhutilSymbolLoader())
|
||||
->setType('class')
|
||||
->setConcreteOnly(true)
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorFileStorageEngine')
|
||||
->selectAndLoadSymbols();
|
||||
|
||||
$results = array();
|
||||
foreach ($engines as $engine_class) {
|
||||
$results[] = newv($engine_class['name'], array());
|
||||
}
|
||||
|
||||
return $results;
|
||||
->execute();
|
||||
}
|
||||
|
||||
public function getViewableMimeType() {
|
||||
|
|
|
@ -100,11 +100,13 @@ final class PhabricatorFlagSearchEngine
|
|||
}
|
||||
|
||||
private function getObjectFilterOptions() {
|
||||
$objects = id(new PhutilSymbolLoader())
|
||||
$objects = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorFlaggableInterface')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$all_types = PhabricatorPHIDType::getAllTypes();
|
||||
$options = array();
|
||||
|
||||
foreach ($objects as $object) {
|
||||
$phid = $object->generatePHID();
|
||||
$phid_type = phid_get_type($phid);
|
||||
|
|
|
@ -291,9 +291,9 @@ final class HarbormasterBuild extends HarbormasterDAO
|
|||
}
|
||||
|
||||
public static function getAvailableBuildVariables() {
|
||||
$objects = id(new PhutilSymbolLoader())
|
||||
$objects = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('HarbormasterBuildableInterface')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$variables = array();
|
||||
$variables[] = array(
|
||||
|
|
|
@ -20,9 +20,9 @@ final class PhabricatorLipsumGenerateWorkflow
|
|||
public function execute(PhutilArgumentParser $args) {
|
||||
$console = PhutilConsole::getConsole();
|
||||
|
||||
$supported_types = id(new PhutilSymbolLoader())
|
||||
$supported_types = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorTestDataGenerator')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$console->writeOut(
|
||||
"%s:\n\t%s\n",
|
||||
|
|
|
@ -105,15 +105,13 @@ final class PhabricatorMailManagementReceiveTestWorkflow
|
|||
'to' => $to.'+1+'.$pseudohash,
|
||||
));
|
||||
|
||||
$receivers = id(new PhutilSymbolLoader())
|
||||
$receivers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorMailReceiver')
|
||||
->loadObjects();
|
||||
->setFilterMethod('isEnabled')
|
||||
->execute();
|
||||
|
||||
$receiver = null;
|
||||
foreach ($receivers as $possible_receiver) {
|
||||
if (!$possible_receiver->isEnabled()) {
|
||||
continue;
|
||||
}
|
||||
if (!$possible_receiver->canAcceptMail($pseudomail)) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -265,15 +265,13 @@ final class PhabricatorMetaMTAReceivedMail extends PhabricatorMetaMTADAO {
|
|||
* accepts this mail, if one exists.
|
||||
*/
|
||||
private function loadReceiver() {
|
||||
$receivers = id(new PhutilSymbolLoader())
|
||||
$receivers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorMailReceiver')
|
||||
->loadObjects();
|
||||
->setFilterMethod('isEnabled')
|
||||
->execute();
|
||||
|
||||
$accept = array();
|
||||
foreach ($receivers as $key => $receiver) {
|
||||
if (!$receiver->isEnabled()) {
|
||||
continue;
|
||||
}
|
||||
if ($receiver->canAcceptMail($this)) {
|
||||
$accept[$key] = $receiver;
|
||||
}
|
||||
|
|
|
@ -307,9 +307,9 @@ final class PhabricatorPolicyTestCase extends PhabricatorTestCase {
|
|||
}
|
||||
|
||||
public function testAllQueriesBelongToActualApplications() {
|
||||
$queries = id(new PhutilSymbolLoader())
|
||||
$queries = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPolicyAwareQuery')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($queries as $qclass => $query) {
|
||||
$class = $query->getQueryApplicationClass();
|
||||
|
|
|
@ -4,10 +4,10 @@ final class PolicyLockOptionType
|
|||
extends PhabricatorConfigJSONOptionType {
|
||||
|
||||
public function validateOption(PhabricatorConfigOption $option, $value) {
|
||||
$capabilities = id(new PhutilSymbolLoader())
|
||||
$capabilities = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPolicyCapability')
|
||||
->loadObjects();
|
||||
$capabilities = mpull($capabilities, null, 'getCapabilityKey');
|
||||
->setUniqueMethod('getCapabilityKey')
|
||||
->execute();
|
||||
|
||||
$policy_phids = array();
|
||||
foreach ($value as $capability_key => $policy) {
|
||||
|
|
|
@ -37,9 +37,9 @@ final class PhabricatorPolicyEditController
|
|||
PhabricatorPolicy::ACTION_DENY => pht('Deny'),
|
||||
);
|
||||
|
||||
$rules = id(new PhutilSymbolLoader())
|
||||
$rules = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPolicyRule')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($rules as $key => $rule) {
|
||||
if (!$rule->canApplyToObject($object)) {
|
||||
|
|
|
@ -305,9 +305,9 @@ final class PhabricatorPolicyQuery
|
|||
}
|
||||
|
||||
public static function getObjectPolicyRules($object) {
|
||||
$rules = id(new PhutilSymbolLoader())
|
||||
$rules = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorPolicyRule')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$results = array();
|
||||
foreach ($rules as $rule) {
|
||||
|
|
|
@ -15,9 +15,9 @@ final class PhabricatorSearchIndexer extends Phobject {
|
|||
}
|
||||
|
||||
public function indexDocumentByPHID($phid, $context) {
|
||||
$indexers = id(new PhutilSymbolLoader())
|
||||
$indexers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSearchDocumentIndexer')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($indexers as $indexer) {
|
||||
if ($indexer->shouldIndexDocumentByPHID($phid)) {
|
||||
|
|
|
@ -122,9 +122,9 @@ final class PhabricatorSearchManagementIndexWorkflow
|
|||
}
|
||||
|
||||
private function loadPHIDsByTypes($type) {
|
||||
$indexers = id(new PhutilSymbolLoader())
|
||||
$indexers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSearchDocumentIndexer')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$phids = array();
|
||||
foreach ($indexers as $indexer) {
|
||||
|
|
|
@ -204,9 +204,9 @@ final class PhabricatorSearchApplicationSearchEngine
|
|||
// TODO: This is inelegant and not very efficient, but gets us reasonable
|
||||
// results. It would be nice to do this more elegantly.
|
||||
|
||||
$indexers = id(new PhutilSymbolLoader())
|
||||
$indexers = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSearchDocumentIndexer')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
if ($viewer) {
|
||||
$types = PhabricatorPHIDType::getAllInstalledTypes($viewer);
|
||||
|
|
|
@ -75,19 +75,11 @@ final class PhabricatorSettingsMainController
|
|||
}
|
||||
|
||||
private function buildPanels() {
|
||||
$panel_specs = id(new PhutilSymbolLoader())
|
||||
$panels = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorSettingsPanel')
|
||||
->setConcreteOnly(true)
|
||||
->selectAndLoadSymbols();
|
||||
|
||||
$panels = array();
|
||||
foreach ($panel_specs as $spec) {
|
||||
$class = newv($spec['name'], array());
|
||||
$panels[] = $class->buildPanels();
|
||||
}
|
||||
|
||||
$panels = array_mergev($panels);
|
||||
$panels = mpull($panels, null, 'getPanelKey');
|
||||
->setExpandMethod('buildPanels')
|
||||
->setUniqueMethod('getPanelKey')
|
||||
->execute();
|
||||
|
||||
$result = array();
|
||||
foreach ($panels as $key => $panel) {
|
||||
|
|
|
@ -191,16 +191,12 @@ final class PhabricatorEmailPreferencesSettingsPanel
|
|||
}
|
||||
|
||||
private function getAllEditorsWithTags(PhabricatorUser $user) {
|
||||
$editors = id(new PhutilSymbolLoader())
|
||||
$editors = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationTransactionEditor')
|
||||
->loadObjects();
|
||||
->setFilterMethod('getMailTagsMap')
|
||||
->execute();
|
||||
|
||||
foreach ($editors as $key => $editor) {
|
||||
// Remove editors which do not support mail tags.
|
||||
if (!$editor->getMailTagsMap()) {
|
||||
unset($editors[$key]);
|
||||
}
|
||||
|
||||
// Remove editors for applications which are not installed.
|
||||
$app = $editor->getEditorApplicationClass();
|
||||
if ($app !== null) {
|
||||
|
|
|
@ -23,9 +23,9 @@ final class PhabricatorApplicationTransactionShowOlderController
|
|||
}
|
||||
|
||||
$template = $object->getApplicationTransactionTemplate();
|
||||
$queries = id(new PhutilSymbolLoader())
|
||||
$queries = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationTransactionQuery')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$object_query = null;
|
||||
foreach ($queries as $query) {
|
||||
|
|
|
@ -28,9 +28,9 @@ final class PhabricatorApplicationTransactionTransactionPHIDType
|
|||
|
||||
static $queries;
|
||||
if ($queries === null) {
|
||||
$objects = id(new PhutilSymbolLoader())
|
||||
$objects = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationTransactionQuery')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
$queries = array();
|
||||
foreach ($objects as $object) {
|
||||
|
|
|
@ -112,9 +112,9 @@ final class PhabricatorApplicationTransactionPublishWorker
|
|||
* the transactions.
|
||||
*/
|
||||
private function buildTransactionQuery($type) {
|
||||
$queries = id(new PhutilSymbolLoader())
|
||||
$queries = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorApplicationTransactionQuery')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
foreach ($queries as $query) {
|
||||
$query_type = $query
|
||||
|
|
|
@ -11,9 +11,10 @@ final class PhabricatorTypeaheadFunctionHelpController
|
|||
$viewer = $this->getViewer();
|
||||
$class = $request->getURIData('class');
|
||||
|
||||
$sources = id(new PhutilSymbolLoader())
|
||||
$sources = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorTypeaheadDatasource')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
if (!isset($sources[$class])) {
|
||||
return new Aphront404Response();
|
||||
}
|
||||
|
|
|
@ -29,9 +29,10 @@ final class PhabricatorTypeaheadModularDatasourceController
|
|||
// This makes form submission easier in the debug view.
|
||||
$class = nonempty($request->getURIData('class'), $request->getStr('class'));
|
||||
|
||||
$sources = id(new PhutilSymbolLoader())
|
||||
$sources = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorTypeaheadDatasource')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
if (isset($sources[$class])) {
|
||||
$source = $sources[$class];
|
||||
$source->setParameters($request->getRequestData());
|
||||
|
|
|
@ -9,10 +9,10 @@ final class PhabricatorUIExampleRenderController extends PhabricatorController {
|
|||
public function handleRequest(AphrontRequest $request) {
|
||||
$id = $request->getURIData('class');
|
||||
|
||||
$classes = id(new PhutilSymbolLoader())
|
||||
$classes = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorUIExample')
|
||||
->loadObjects();
|
||||
$classes = msort($classes, 'getName');
|
||||
->setSortMethod('getName')
|
||||
->execute();
|
||||
|
||||
$nav = new AphrontSideNavFilterView();
|
||||
$nav->setBaseURI(new PhutilURI($this->getApplicationURI('view/')));
|
||||
|
|
|
@ -22,10 +22,10 @@ abstract class PhabricatorStandardCustomField
|
|||
PhabricatorCustomField $template,
|
||||
array $config) {
|
||||
|
||||
$types = id(new PhutilSymbolLoader())
|
||||
$types = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass(__CLASS__)
|
||||
->loadObjects();
|
||||
$types = mpull($types, null, 'getFieldType');
|
||||
->setUniqueMethod('getFieldType')
|
||||
->execute();
|
||||
|
||||
$fields = array();
|
||||
foreach ($config as $key => $value) {
|
||||
|
|
|
@ -385,9 +385,9 @@ final class PhabricatorTriggerDaemon
|
|||
* @task garbage
|
||||
*/
|
||||
private function loadGarbageCollectors() {
|
||||
return id(new PhutilSymbolLoader())
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorGarbageCollector')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
}
|
||||
|
||||
|
||||
|
|
7
src/infrastructure/env/PhabricatorEnv.php
vendored
7
src/infrastructure/env/PhabricatorEnv.php
vendored
|
@ -200,10 +200,11 @@ final class PhabricatorEnv extends Phobject {
|
|||
$default_source->loadExternalOptions();
|
||||
|
||||
// If this install has site config sources, load them now.
|
||||
$site_sources = id(new PhutilSymbolLoader())
|
||||
$site_sources = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorConfigSiteSource')
|
||||
->loadObjects();
|
||||
$site_sources = msort($site_sources, 'getPriority');
|
||||
->setSortMethod('getPriority')
|
||||
->execute();
|
||||
|
||||
foreach ($site_sources as $site_source) {
|
||||
$stack->pushSource($site_source);
|
||||
}
|
||||
|
|
|
@ -9,9 +9,9 @@ final class PhabricatorEventEngine extends Phobject {
|
|||
// be able to run `bin/config` in order to remove an invalid listener.
|
||||
|
||||
// Load automatic listeners.
|
||||
$listeners = id(new PhutilSymbolLoader())
|
||||
$listeners = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorAutoEventListener')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
|
||||
// Load configured listeners.
|
||||
$config_listeners = PhabricatorEnv::getEnvConfig('events.listeners');
|
||||
|
|
|
@ -622,15 +622,15 @@ final class PhabricatorMarkupEngine extends Phobject {
|
|||
}
|
||||
|
||||
private static function loadCustomInlineRules() {
|
||||
return id(new PhutilSymbolLoader())
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorRemarkupCustomInlineRule')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
}
|
||||
|
||||
private static function loadCustomBlockRules() {
|
||||
return id(new PhutilSymbolLoader())
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorRemarkupCustomBlockRule')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,31 +37,15 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
}
|
||||
|
||||
final public static function buildAllPatches() {
|
||||
$patch_lists = id(new PhutilSymbolLoader())
|
||||
$patch_lists = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass(__CLASS__)
|
||||
->setConcreteOnly(true)
|
||||
->selectAndLoadSymbols();
|
||||
->setUniqueMethod('getNamespace')
|
||||
->execute();
|
||||
|
||||
$specs = array();
|
||||
$seen_namespaces = array();
|
||||
|
||||
foreach ($patch_lists as $patch_class) {
|
||||
$patch_class = $patch_class['name'];
|
||||
$patch_list = newv($patch_class, array());
|
||||
|
||||
$namespace = $patch_list->getNamespace();
|
||||
if (isset($seen_namespaces[$namespace])) {
|
||||
$prior = $seen_namespaces[$namespace];
|
||||
throw new Exception(
|
||||
pht(
|
||||
"%s '%s' has the same namespace, '%s', as another patch list ".
|
||||
"class, '%s'. Each patch list MUST have a unique namespace.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
$namespace,
|
||||
$prior));
|
||||
}
|
||||
|
||||
foreach ($patch_lists as $patch_list) {
|
||||
$last_key = null;
|
||||
foreach ($patch_list->getPatches() as $key => $patch) {
|
||||
if (!is_array($patch)) {
|
||||
|
@ -69,7 +53,7 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
pht(
|
||||
"%s '%s' has a patch '%s' which is not an array.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
get_class($patch_list),
|
||||
$key));
|
||||
}
|
||||
|
||||
|
@ -88,7 +72,7 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
"%s '%s' has a patch, '%s', with an unknown property, '%s'.".
|
||||
"Patches must have only valid keys: %s.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
get_class($patch_list),
|
||||
$key,
|
||||
$pkey,
|
||||
implode(', ', array_keys($valid))));
|
||||
|
@ -101,7 +85,7 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
"%s '%s' has a patch with a numeric key, '%s'. ".
|
||||
"Patches must use string keys.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
get_class($patch_list),
|
||||
$key));
|
||||
}
|
||||
|
||||
|
@ -111,10 +95,11 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
"%s '%s' has a patch with a colon in the key name, '%s'. ".
|
||||
"Patch keys may not contain colons.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
get_class($patch_list),
|
||||
$key));
|
||||
}
|
||||
|
||||
$namespace = $patch_list->getNamespace();
|
||||
$full_key = "{$namespace}:{$key}";
|
||||
|
||||
if (isset($specs[$full_key])) {
|
||||
|
@ -123,7 +108,7 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
"%s '%s' has a patch '%s' which duplicates an ".
|
||||
"existing patch key.",
|
||||
__CLASS__,
|
||||
$patch_class,
|
||||
get_class($patch_list),
|
||||
$key));
|
||||
}
|
||||
|
||||
|
@ -152,7 +137,7 @@ abstract class PhabricatorSQLPatchList extends Phobject {
|
|||
"determined implicitly. The first patch in a patch list must ".
|
||||
"list the patch or patches it depends on explicitly.",
|
||||
$full_key,
|
||||
$patch_class));
|
||||
get_class($patch_list)));
|
||||
} else {
|
||||
$patch['after'] = array($last_key);
|
||||
}
|
||||
|
|
|
@ -16,8 +16,8 @@ EOSYNOPSIS
|
|||
);
|
||||
$args->parseStandardArguments();
|
||||
|
||||
$workflows = id(new PhutilSymbolLoader())
|
||||
$workflows = id(new PhutilClassMapQuery())
|
||||
->setAncestorClass('PhabricatorAphlictManagementWorkflow')
|
||||
->loadObjects();
|
||||
->execute();
|
||||
$workflows[] = new PhutilHelpArgumentWorkflow();
|
||||
$args->parseWorkflows($workflows);
|
||||
|
|
Loading…
Reference in a new issue