Path: blob/master/src/applications/files/favicon/PhabricatorFaviconRefQuery.php
12241 views
<?php12final class PhabricatorFaviconRefQuery extends Phobject {34private $refs;56public function withRefs(array $refs) {7assert_instances_of($refs, 'PhabricatorFaviconRef');8$this->refs = $refs;9return $this;10}1112public function execute() {13$viewer = PhabricatorUser::getOmnipotentUser();1415$refs = $this->refs;1617$config_digest = PhabricatorFaviconRef::newConfigurationDigest();1819$ref_map = array();20foreach ($refs as $ref) {21$ref_digest = $ref->newDigest();22$ref_key = "favicon({$config_digest},{$ref_digest},8)";2324$ref25->setViewer($viewer)26->setCacheKey($ref_key);2728$ref_map[$ref_key] = $ref;29}3031$cache = PhabricatorCaches::getImmutableCache();32$ref_hits = $cache->getKeys(array_keys($ref_map));3334foreach ($ref_hits as $ref_key => $ref_uri) {35$ref_map[$ref_key]->setURI($ref_uri);36unset($ref_map[$ref_key]);37}3839if ($ref_map) {40$new_map = array();41foreach ($ref_map as $ref_key => $ref) {42$ref_uri = $ref->newURI();43$ref->setURI($ref_uri);44$new_map[$ref_key] = $ref_uri;45}4647$cache->setKeys($new_map);48}4950return $refs;51}525354}555657