@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<?php
2
3final class PhorgeFlagFlaggedObjectFieldStorage extends Phobject {
4
5 private $viewer;
6
7 public function setViewer(PhabricatorUser $viewer) {
8 $this->viewer = $viewer;
9 return $this;
10 }
11
12 public function getStorageSourceKey() {
13 return 'flags/flag';
14 }
15
16 public function loadStorageSourceData(array $fields) {
17
18 $objects = mpull($fields, 'getObject');
19 $object_phids = mpull($objects, 'getPHID');
20 $flags = (new PhabricatorFlagQuery())
21 ->setViewer($this->viewer)
22 ->withOwnerPHIDs(array($this->viewer->getPHID()))
23 ->withObjectPHIDs($object_phids)
24 ->execute();
25 $flags = mpull($flags, null, 'getObjectPHID');
26
27 $result = array();
28 foreach ($fields as $key => $field) {
29 $target_phid = $field->getObject()->getPHID();
30 $result[$key] = idx($flags, $target_phid);
31 }
32
33 return $result;
34 }
35
36}