Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/almanac/engineextension/AlmanacCacheEngineExtension.php
12256 views
1
<?php
2
3
final class AlmanacCacheEngineExtension
4
extends PhabricatorCacheEngineExtension {
5
6
const EXTENSIONKEY = 'almanac';
7
8
public function getExtensionName() {
9
return pht('Almanac Core Objects');
10
}
11
12
public function discoverLinkedObjects(
13
PhabricatorCacheEngine $engine,
14
array $objects) {
15
$viewer = $engine->getViewer();
16
17
$results = array();
18
foreach ($this->selectObjects($objects, 'AlmanacBinding') as $object) {
19
$results[] = $object->getServicePHID();
20
$results[] = $object->getDevicePHID();
21
$results[] = $object->getInterfacePHID();
22
}
23
24
$devices = $this->selectObjects($objects, 'AlmanacDevice');
25
if ($devices) {
26
$interfaces = id(new AlmanacInterfaceQuery())
27
->setViewer($viewer)
28
->withDevicePHIDs(mpull($devices, 'getPHID'))
29
->execute();
30
foreach ($interfaces as $interface) {
31
$results[] = $interface;
32
}
33
34
$bindings = id(new AlmanacBindingQuery())
35
->setViewer($viewer)
36
->withDevicePHIDs(mpull($devices, 'getPHID'))
37
->execute();
38
foreach ($bindings as $binding) {
39
$results[] = $binding;
40
}
41
}
42
43
foreach ($this->selectObjects($objects, 'AlmanacInterface') as $iface) {
44
$results[] = $iface->getDevicePHID();
45
$results[] = $iface->getNetworkPHID();
46
}
47
48
foreach ($this->selectObjects($objects, 'AlmanacProperty') as $object) {
49
$results[] = $object->getObjectPHID();
50
}
51
52
return $results;
53
}
54
55
public function deleteCaches(
56
PhabricatorCacheEngine $engine,
57
array $objects) {
58
return;
59
}
60
61
}
62
63