[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorSubscribersQuery extends PhabricatorQuery { 4 5 private $objectPHIDs; 6 private $subscriberPHIDs; 7 8 public static function loadSubscribersForPHID($phid) { 9 if (!$phid) { 10 return array(); 11 } 12 13 $subscribers = id(new PhabricatorSubscribersQuery()) 14 ->withObjectPHIDs(array($phid)) 15 ->execute(); 16 return $subscribers[$phid]; 17 } 18 19 public function withObjectPHIDs(array $object_phids) { 20 $this->objectPHIDs = $object_phids; 21 return $this; 22 } 23 24 public function withSubscriberPHIDs(array $subscriber_phids) { 25 $this->subscriberPHIDs = $subscriber_phids; 26 return $this; 27 } 28 29 public function execute() { 30 $query = new PhabricatorEdgeQuery(); 31 32 $edge_type = PhabricatorEdgeConfig::TYPE_OBJECT_HAS_SUBSCRIBER; 33 34 $query->withSourcePHIDs($this->objectPHIDs); 35 $query->withEdgeTypes(array($edge_type)); 36 37 if ($this->subscriberPHIDs) { 38 $query->withDestinationPHIDs($this->subscriberPHIDs); 39 } 40 41 $edges = $query->execute(); 42 43 $results = array_fill_keys($this->objectPHIDs, array()); 44 foreach ($edges as $src => $edge_types) { 45 foreach ($edge_types[$edge_type] as $dst => $data) { 46 $results[$src][] = $dst; 47 } 48 } 49 50 return $results; 51 } 52 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |