Something went wrong. Try again.
@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
Something went wrong. Try again.
1.3 kB · 52 lines
PHP
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253<?php
final class DiffusionCacheEngineExtension extends PhabricatorCacheEngineExtension {
const EXTENSIONKEY = 'diffusion';
public function getExtensionName() { return pht('Diffusion Repositories'); }
public function discoverLinkedObjects( PhabricatorCacheEngine $engine, array $objects) { $viewer = $engine->getViewer(); $results = array();
// When an Almanac Service changes, update linked repositories.
$services = $this->selectObjects($objects, 'AlmanacService'); if ($services) { $repositories = id(new PhabricatorRepositoryQuery()) ->setViewer($viewer) ->withAlmanacServicePHIDs(mpull($services, 'getPHID')) ->execute(); foreach ($repositories as $repository) { $results[] = $repository; } }
return $results; }
public function deleteCaches( PhabricatorCacheEngine $engine, array $objects) {
$keys = array(); $repositories = $this->selectObjects($objects, 'PhabricatorRepository'); foreach ($repositories as $repository) { $keys[] = $repository->getAlmanacServiceCacheKey(); }
$keys = array_filter($keys);
if ($keys) { $cache = PhabricatorCaches::getMutableStructureCache(); $cache->deleteKeys($keys); } }
}