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

Implement PhabricatorDestructibleInterface for event triggers

Summary: Ref T6881. When stuff with triggers is destroyed, it should destroy the triggers.

Test Plan: Will test in Instances.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T6881

Differential Revision: https://secure.phabricator.com/D11435

+25 -2
+4 -1
src/__phutil_library_map__.php
··· 5884 5884 'PhabricatorWorkerTaskData' => 'PhabricatorWorkerDAO', 5885 5885 'PhabricatorWorkerTaskDetailController' => 'PhabricatorDaemonController', 5886 5886 'PhabricatorWorkerTestCase' => 'PhabricatorTestCase', 5887 - 'PhabricatorWorkerTrigger' => 'PhabricatorWorkerDAO', 5887 + 'PhabricatorWorkerTrigger' => array( 5888 + 'PhabricatorWorkerDAO', 5889 + 'PhabricatorDestructibleInterface', 5890 + ), 5888 5891 'PhabricatorWorkerTriggerEvent' => 'PhabricatorWorkerDAO', 5889 5892 'PhabricatorWorkerTriggerPHIDType' => 'PhabricatorPHIDType', 5890 5893 'PhabricatorWorkerTriggerQuery' => 'PhabricatorOffsetPagedQuery',
+21 -1
src/infrastructure/daemon/workers/storage/PhabricatorWorkerTrigger.php
··· 1 1 <?php 2 2 3 3 final class PhabricatorWorkerTrigger 4 - extends PhabricatorWorkerDAO { 4 + extends PhabricatorWorkerDAO 5 + implements 6 + PhabricatorDestructibleInterface { 5 7 6 8 protected $triggerVersion; 7 9 protected $clockClass; ··· 125 127 public function attachClock(PhabricatorTriggerClock $clock) { 126 128 $this->clock = $clock; 127 129 return $this; 130 + } 131 + 132 + 133 + /* -( PhabricatorDestructibleInterface )----------------------------------- */ 134 + 135 + 136 + public function destroyObjectPermanently( 137 + PhabricatorDestructionEngine $engine) { 138 + 139 + $this->openTransaction(); 140 + queryfx( 141 + $this->establishConnection('w'), 142 + 'DELETE FROM %T WHERE triggerID = %d', 143 + id(new PhabricatorWorkerTriggerEvent())->getTableName(), 144 + $this->getID()); 145 + 146 + $this->delete(); 147 + $this->saveTransaction(); 128 148 } 129 149 130 150 }