@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
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 131 lines 3.2 kB view raw
1<?php 2 3abstract class PhabricatorSearchEngineExtension extends Phobject { 4 5 private $viewer; 6 private $searchEngine; 7 8 /** 9 * @return string The EXTENSIONKEY of the PhabricatorSearchEngineExtension 10 * subclass 11 */ 12 final public function getExtensionKey() { 13 return $this->getPhobjectClassConstant('EXTENSIONKEY'); 14 } 15 16 final public function setViewer($viewer) { 17 $this->viewer = $viewer; 18 return $this; 19 } 20 21 /** 22 * @return PhabricatorUser 23 */ 24 final public function getViewer() { 25 return $this->viewer; 26 } 27 28 final public function setSearchEngine( 29 PhabricatorApplicationSearchEngine $engine) { 30 $this->searchEngine = $engine; 31 return $this; 32 } 33 34 /** 35 * @return PhabricatorApplicationSearchEngine A subclass of 36 * PhabricatorApplicationSearchEngine 37 */ 38 final public function getSearchEngine() { 39 return $this->searchEngine; 40 } 41 42 /** 43 * @return bool 44 */ 45 abstract public function isExtensionEnabled(); 46 /** 47 * @return string Description of the Search Engine Extension 48 */ 49 abstract public function getExtensionName(); 50 /** 51 * @return bool 52 */ 53 abstract public function supportsObject($object); 54 55 public function getExtensionOrder() { 56 return 7000; 57 } 58 59 /** 60 * @return array<PhabricatorSearchField> Subclasses of 61 * PhabricatorSearchField, or an empty array 62 */ 63 public function getSearchFields($object) { 64 return array(); 65 } 66 67 /** 68 * @return array<PhabricatorSearchEngineAttachment> Subclasses of 69 * PhabricatorSearchEngineAttachment, or an empty array 70 */ 71 public function getSearchAttachments($object) { 72 return array(); 73 } 74 75 /** 76 * Add additional parameters to the $query based on elements in the $map 77 * @param $object A subclass of PhabricatorLiskDAO - a storage object, e.g. 78 * ManiphestTask or PhabricatorDashboardPortal 79 * @param $query A corresponding subclass of 80 * PhabricatorCursorPagedPolicyAwareQuery, e.g. ManiphestTaskQuery or 81 * PhabricatorDashboardPortalQuery 82 * @param PhabricatorSavedQuery $saved 83 * @param array $map 84 * @return void 85 */ 86 public function applyConstraintsToQuery( 87 $object, 88 $query, 89 PhabricatorSavedQuery $saved, 90 array $map) { 91 return; 92 } 93 94 public function getFieldSpecificationsForConduit($object) { 95 return array(); 96 } 97 98 public function loadExtensionConduitData(array $objects) { 99 return null; 100 } 101 102 public function getFieldValuesForConduit($object, $data) { 103 return array(); 104 } 105 106 /** 107 * @return map<string, PhabricatorSearchEngineExtension> Array of 108 * PhabricatorSearchEngineExtension extension keys and the 109 * PhabricatorSearchEngineExtension subclasses 110 */ 111 final public static function getAllExtensions() { 112 return id(new PhutilClassMapQuery()) 113 ->setAncestorClass(self::class) 114 ->setUniqueMethod('getExtensionKey') 115 ->setSortMethod('getExtensionOrder') 116 ->execute(); 117 } 118 119 final public static function getAllEnabledExtensions() { 120 $extensions = self::getAllExtensions(); 121 122 foreach ($extensions as $key => $extension) { 123 if (!$extension->isExtensionEnabled()) { 124 unset($extensions[$key]); 125 } 126 } 127 128 return $extensions; 129 } 130 131}