Changeset View
Changeset View
Standalone View
Standalone View
src/applications/packages/phid/PackagesVersionPHIDType.php
- This file was added.
| <?php | |||||
| final class PackagesVersionPHIDType extends PhabricatorPHIDType { | |||||
| const TYPECONST = 'PVER'; | |||||
| public function getTypeName() { | |||||
| return pht('Extension Package Version'); | |||||
| } | |||||
| public function newObject() { | |||||
| return new PackagesVersion(); | |||||
| } | |||||
| public function getPHIDTypeApplicationClass() { | |||||
| return 'PhabricatorPackagesApplication'; | |||||
| } | |||||
| protected function buildQueryForObjects( | |||||
| PhabricatorObjectQuery $query, | |||||
| array $phids) { | |||||
| return id(new PackagesVersionQuery()) | |||||
| ->withPHIDs($phids); | |||||
| } | |||||
| public function loadHandles( | |||||
| PhabricatorHandleQuery $query, | |||||
| array $handles, | |||||
| array $objects) { | |||||
| foreach ($handles as $phid => $handle) { | |||||
| $versions = $objects[$phid]; | |||||
| $id = $versions->getID(); | |||||
| $name = $versions->getTitle(); | |||||
| $handle->setName($name); | |||||
| $handle->setURI("/packages/version/{$id}/"); | |||||
| } | |||||
| } | |||||
| public function loadNamedObjects( | |||||
| PhabricatorObjectQuery $query, | |||||
| array $names) { | |||||
| $id_map = array(); | |||||
| foreach ($names as $name) { | |||||
| $id = (int)substr($name, 1); | |||||
| $id_map[$id][] = $name; | |||||
| } | |||||
| $objects = id(new PackagesVersionQuery()) | |||||
| ->setViewer($query->getViewer()) | |||||
| ->withIDs(array_keys($id_map)) | |||||
| ->execute(); | |||||
| $results = array(); | |||||
| foreach ($objects as $id => $object) { | |||||
| foreach (idx($id_map, $id, array()) as $name) { | |||||
| $results[$name] = $object; | |||||
| } | |||||
| } | |||||
| return $results; | |||||
| } | |||||
| } | |||||