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

at recaptime-dev/main 58 lines 1.3 kB view raw
1<?php 2 3final class PhabricatorFaviconRefQuery extends Phobject { 4 5 private $refs; 6 7 /** 8 * @param array<PhabricatorFaviconRef> $refs 9 */ 10 public function withRefs(array $refs) { 11 assert_instances_of($refs, PhabricatorFaviconRef::class); 12 $this->refs = $refs; 13 return $this; 14 } 15 16 public function execute() { 17 $viewer = PhabricatorUser::getOmnipotentUser(); 18 19 $refs = $this->refs; 20 21 $config_digest = PhabricatorFaviconRef::newConfigurationDigest(); 22 23 $ref_map = array(); 24 foreach ($refs as $ref) { 25 $ref_digest = $ref->newDigest(); 26 $ref_key = "favicon({$config_digest},{$ref_digest},8)"; 27 28 $ref 29 ->setViewer($viewer) 30 ->setCacheKey($ref_key); 31 32 $ref_map[$ref_key] = $ref; 33 } 34 35 $cache = PhabricatorCaches::getImmutableCache(); 36 $ref_hits = $cache->getKeys(array_keys($ref_map)); 37 38 foreach ($ref_hits as $ref_key => $ref_uri) { 39 $ref_map[$ref_key]->setURI($ref_uri); 40 unset($ref_map[$ref_key]); 41 } 42 43 if ($ref_map) { 44 $new_map = array(); 45 foreach ($ref_map as $ref_key => $ref) { 46 $ref_uri = $ref->newURI(); 47 $ref->setURI($ref_uri); 48 $new_map[$ref_key] = $ref_uri; 49 } 50 51 $cache->setKeys($new_map); 52 } 53 54 return $refs; 55 } 56 57 58}