@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 PhabricatorDestructionEngineExtension extends Phobject {
4
5 final public function getExtensionKey() {
6 return $this->getPhobjectClassConstant('EXTENSIONKEY');
7 }
8
9 abstract public function getExtensionName();
10
11 public function canDestroyObject(
12 PhabricatorDestructionEngine $engine,
13 $object) {
14 return true;
15 }
16
17 public function destroyObject(
18 PhabricatorDestructionEngine $engine,
19 $object) {
20 return null;
21 }
22
23 public function didDestroyObject(
24 PhabricatorDestructionEngine $engine,
25 $object) {
26 return null;
27 }
28
29 final public static function getAllExtensions() {
30 return id(new PhutilClassMapQuery())
31 ->setAncestorClass(self::class)
32 ->setUniqueMethod('getExtensionKey')
33 ->execute();
34 }
35
36}