Path: blob/master/src/applications/almanac/engineextension/AlmanacCacheEngineExtension.php
12256 views
<?php12final class AlmanacCacheEngineExtension3extends PhabricatorCacheEngineExtension {45const EXTENSIONKEY = 'almanac';67public function getExtensionName() {8return pht('Almanac Core Objects');9}1011public function discoverLinkedObjects(12PhabricatorCacheEngine $engine,13array $objects) {14$viewer = $engine->getViewer();1516$results = array();17foreach ($this->selectObjects($objects, 'AlmanacBinding') as $object) {18$results[] = $object->getServicePHID();19$results[] = $object->getDevicePHID();20$results[] = $object->getInterfacePHID();21}2223$devices = $this->selectObjects($objects, 'AlmanacDevice');24if ($devices) {25$interfaces = id(new AlmanacInterfaceQuery())26->setViewer($viewer)27->withDevicePHIDs(mpull($devices, 'getPHID'))28->execute();29foreach ($interfaces as $interface) {30$results[] = $interface;31}3233$bindings = id(new AlmanacBindingQuery())34->setViewer($viewer)35->withDevicePHIDs(mpull($devices, 'getPHID'))36->execute();37foreach ($bindings as $binding) {38$results[] = $binding;39}40}4142foreach ($this->selectObjects($objects, 'AlmanacInterface') as $iface) {43$results[] = $iface->getDevicePHID();44$results[] = $iface->getNetworkPHID();45}4647foreach ($this->selectObjects($objects, 'AlmanacProperty') as $object) {48$results[] = $object->getObjectPHID();49}5051return $results;52}5354public function deleteCaches(55PhabricatorCacheEngine $engine,56array $objects) {57return;58}5960}616263