Path: blob/master/src/infrastructure/export/engine/PhabricatorProjectsExportEngineExtension.php
12242 views
<?php12final class PhabricatorProjectsExportEngineExtension3extends PhabricatorExportEngineExtension {45const EXTENSIONKEY = 'projects';67public function supportsObject($object) {8return ($object instanceof PhabricatorProjectInterface);9}1011public function newExportFields() {12return array(13id(new PhabricatorPHIDListExportField())14->setKey('tagPHIDs')15->setLabel(pht('Tag PHIDs')),16id(new PhabricatorStringListExportField())17->setKey('tags')18->setLabel(pht('Tags')),19);20}2122public function newExportData(array $objects) {23$viewer = $this->getViewer();2425$object_phids = mpull($objects, 'getPHID');2627$projects_query = id(new PhabricatorEdgeQuery())28->withSourcePHIDs($object_phids)29->withEdgeTypes(30array(31PhabricatorProjectObjectHasProjectEdgeType::EDGECONST,32));33$projects_query->execute();3435$handles = $viewer->loadHandles($projects_query->getDestinationPHIDs());3637$map = array();38foreach ($objects as $object) {39$object_phid = $object->getPHID();4041$project_phids = $projects_query->getDestinationPHIDs(42array($object_phid),43array(PhabricatorProjectObjectHasProjectEdgeType::EDGECONST));4445$handle_list = $handles->newSublist($project_phids);46$handle_list = iterator_to_array($handle_list);47$handle_names = mpull($handle_list, 'getName');48$handle_names = array_values($handle_names);4950$map[] = array(51'tagPHIDs' => $project_phids,52'tags' => $handle_names,53);54}5556return $map;57}5859}606162