@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3abstract class PhabricatorDatasourceEngineExtension extends Phobject {
4
5 private $viewer;
6
7 final public function setViewer(PhabricatorUser $viewer) {
8 $this->viewer = $viewer;
9 return $this;
10 }
11
12 final public function getViewer() {
13 return $this->viewer;
14 }
15
16 public function newQuickSearchDatasources() {
17 return array();
18 }
19
20 public function newJumpURI($query) {
21 return null;
22 }
23
24 public function newDatasourcesForCompositeDatasource(
25 PhabricatorTypeaheadCompositeDatasource $datasource) {
26 return array();
27 }
28
29 final public static function getAllExtensions() {
30 return id(new PhutilClassMapQuery())
31 ->setAncestorClass(self::class)
32 ->execute();
33 }
34
35 final public static function getAllQuickSearchDatasources() {
36 $extensions = self::getAllExtensions();
37
38 $datasources = array();
39 foreach ($extensions as $extension) {
40 $datasources[] = $extension->newQuickSearchDatasources();
41 }
42
43 return array_mergev($datasources);
44 }
45}