@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 PhabricatorCacheEngineExtension extends Phobject {
4
5 final public function getExtensionKey() {
6 return $this->getPhobjectClassConstant('EXTENSIONKEY');
7 }
8
9 abstract public function getExtensionName();
10
11 public function discoverLinkedObjects(
12 PhabricatorCacheEngine $engine,
13 array $objects) {
14 return array();
15 }
16
17 public function deleteCaches(
18 PhabricatorCacheEngine $engine,
19 array $objects) {
20 return null;
21 }
22
23 final public static function getAllExtensions() {
24 return id(new PhutilClassMapQuery())
25 ->setAncestorClass(self::class)
26 ->setUniqueMethod('getExtensionKey')
27 ->execute();
28 }
29
30 final public function selectObjects(array $objects, $class_name) {
31 $results = array();
32
33 foreach ($objects as $phid => $object) {
34 if ($object instanceof $class_name) {
35 $results[$phid] = $object;
36 }
37 }
38
39 return $results;
40 }
41
42}