当前位置: 首页>>代码示例>>PHP>>正文


PHP PhabricatorApplicationTransaction::getOldValue方法代码示例

本文整理汇总了PHP中PhabricatorApplicationTransaction::getOldValue方法的典型用法代码示例。如果您正苦于以下问题:PHP PhabricatorApplicationTransaction::getOldValue方法的具体用法?PHP PhabricatorApplicationTransaction::getOldValue怎么用?PHP PhabricatorApplicationTransaction::getOldValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PhabricatorApplicationTransaction的用法示例。


在下文中一共展示了PhabricatorApplicationTransaction::getOldValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: applyCustomExternalTransaction

 protected function applyCustomExternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case PhabricatorMacroTransaction::TYPE_FILE:
         case PhabricatorMacroTransaction::TYPE_AUDIO:
             // When changing a macro's image or audio, attach the underlying files
             // to the macro (and detach the old files).
             $old = $xaction->getOldValue();
             $new = $xaction->getNewValue();
             $all = array();
             if ($old) {
                 $all[] = $old;
             }
             if ($new) {
                 $all[] = $new;
             }
             $files = id(new PhabricatorFileQuery())->setViewer($this->requireActor())->withPHIDs($all)->execute();
             $files = mpull($files, null, 'getPHID');
             $old_file = idx($files, $old);
             if ($old_file) {
                 $old_file->detachFromObject($object->getPHID());
             }
             $new_file = idx($files, $new);
             if ($new_file) {
                 $new_file->attachToObject($object->getPHID());
             }
             break;
     }
 }
开发者ID:pugong,项目名称:phabricator,代码行数:29,代码来源:PhabricatorMacroEditor.php

示例2: applyCustomExternalTransaction

 protected function applyCustomExternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case AlmanacDeviceTransaction::TYPE_NAME:
             return;
         case AlmanacDeviceTransaction::TYPE_INTERFACE:
             $old = $xaction->getOldValue();
             if ($old) {
                 $interface = id(new AlmanacInterfaceQuery())->setViewer($this->requireActor())->withIDs(array($old['id']))->executeOne();
                 if (!$interface) {
                     throw new Exception(pht('Unable to load interface!'));
                 }
             } else {
                 $interface = AlmanacInterface::initializeNewInterface()->setDevicePHID($object->getPHID());
             }
             $new = $xaction->getNewValue();
             if ($new) {
                 $interface->setNetworkPHID($new['networkPHID'])->setAddress($new['address'])->setPort((int) $new['port']);
                 if (idx($new, 'phid')) {
                     $interface->setPHID($new['phid']);
                 }
                 $interface->save();
             } else {
                 $interface->delete();
             }
             return;
     }
     return parent::applyCustomExternalTransaction($object, $xaction);
 }
开发者ID:pugong,项目名称:phabricator,代码行数:29,代码来源:AlmanacDeviceEditor.php

示例3: applyCustomExternalTransaction

 protected function applyCustomExternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case PhabricatorTransactions::TYPE_COMMENT:
         case PhabricatorTransactions::TYPE_SUBSCRIBERS:
         case PhabricatorTransactions::TYPE_EDGE:
         case PhabricatorAuditActionConstants::ACTION:
         case PhabricatorAuditActionConstants::INLINE:
             return;
         case PhabricatorAuditActionConstants::ADD_AUDITORS:
             $new = $xaction->getNewValue();
             if (!is_array($new)) {
                 $new = array();
             }
             $old = $xaction->getOldValue();
             if (!is_array($old)) {
                 $old = array();
             }
             $add = array_diff_key($new, $old);
             $actor = $this->requireActor();
             $requests = $object->getAudits();
             $requests = mpull($requests, null, 'getAuditorPHID');
             foreach ($add as $phid) {
                 if (isset($requests[$phid])) {
                     continue;
                 }
                 $audit_requested = PhabricatorAuditStatusConstants::AUDIT_REQUESTED;
                 $requests[] = id(new PhabricatorRepositoryAuditRequest())->setCommitPHID($object->getPHID())->setAuditorPHID($phid)->setAuditStatus($audit_requested)->setAuditReasons(array('Added by ' . $actor->getUsername()))->save();
             }
             $object->attachAudits($requests);
             return;
     }
     return parent::applyCustomExternalTransaction($object, $xaction);
 }
开发者ID:denghp,项目名称:phabricator,代码行数:34,代码来源:PhabricatorAuditEditor.php

示例4: applyCustomExternalTransaction

 protected function applyCustomExternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case AlmanacBindingTransaction::TYPE_DISABLE:
             return;
         case AlmanacBindingTransaction::TYPE_INTERFACE:
             $interface_phids = array();
             $interface_phids[] = $xaction->getOldValue();
             $interface_phids[] = $xaction->getNewValue();
             $interface_phids = array_filter($interface_phids);
             $interface_phids = array_unique($interface_phids);
             $interfaces = id(new AlmanacInterfaceQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withPHIDs($interface_phids)->execute();
             $device_phids = array();
             foreach ($interfaces as $interface) {
                 $device_phids[] = $interface->getDevicePHID();
             }
             $device_phids = array_unique($device_phids);
             $devices = id(new AlmanacDeviceQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withPHIDs($device_phids)->execute();
             foreach ($devices as $device) {
                 $device->rebuildClusterBindingStatus();
             }
             return;
     }
     return parent::applyCustomExternalTransaction($object, $xaction);
 }
开发者ID:rchicoli,项目名称:phabricator,代码行数:25,代码来源:AlmanacBindingEditor.php

示例5: getApplicationTransactionTitleForFeed

 public function getApplicationTransactionTitleForFeed(PhabricatorApplicationTransaction $xaction)
 {
     $object_phid = $xaction->getObjectPHID();
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     return pht('%s updated the blame revision for %s.', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($object_phid));
 }
开发者ID:pugong,项目名称:phabricator,代码行数:8,代码来源:DifferentialBlameRevisionField.php

示例6: getApplicationTransactionTitle

 public function getApplicationTransactionTitle(PhabricatorApplicationTransaction $xaction)
 {
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     if ($new) {
         return pht('%s checked %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName());
     } else {
         return pht('%s unchecked %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName());
     }
 }
开发者ID:pugong,项目名称:phabricator,代码行数:11,代码来源:PhabricatorStandardCustomFieldBool.php

示例7: getApplicationTransactionTitleForFeed

 public function getApplicationTransactionTitleForFeed(PhabricatorApplicationTransaction $xaction, PhabricatorFeedStory $story)
 {
     $object_phid = $xaction->getObjectPHID();
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     if (strlen($old)) {
         return pht('%s retitled %s, from "%s" to "%s".', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($object_phid), $old, $new);
     } else {
         return pht('%s created %s.', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($object_phid));
     }
 }
开发者ID:denghp,项目名称:phabricator,代码行数:12,代码来源:DifferentialTitleField.php

示例8: getApplicationTransactionTitleForFeed

 public function getApplicationTransactionTitleForFeed(PhabricatorApplicationTransaction $xaction, PhabricatorFeedStory $story)
 {
     $object_phid = $xaction->getObjectPHID();
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     if ($old) {
         return pht('%s updated the repository for %s from %s to %s.', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($object_phid), $xaction->renderHandleLink($old), $xaction->renderHandleLink($new));
     } else {
         return pht('%s set the repository for %s to %s.', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($object_phid), $xaction->renderHandleLink($new));
     }
 }
开发者ID:denghp,项目名称:phabricator,代码行数:12,代码来源:DifferentialRepositoryField.php

示例9: getApplicationTransactionHasEffect

 public function getApplicationTransactionHasEffect(PhabricatorApplicationTransaction $xaction)
 {
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     if (!strlen($old) && strlen($new)) {
         return true;
     } else {
         if (strlen($old) && !strlen($new)) {
             return true;
         } else {
             return (int) $old !== (int) $new;
         }
     }
 }
开发者ID:patelhardik,项目名称:phabricator,代码行数:14,代码来源:PhabricatorStandardCustomFieldInt.php

示例10: transactionHasEffect

 protected function transactionHasEffect(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     $type = $xaction->getTransactionType();
     switch ($type) {
         case PhabricatorConfigTransaction::TYPE_EDIT:
             // If an edit deletes an already-deleted entry, no-op it.
             if (idx($old, 'deleted') && idx($new, 'deleted')) {
                 return false;
             }
             break;
     }
     return parent::transactionHasEffect($object, $xaction);
 }
开发者ID:pugong,项目名称:phabricator,代码行数:15,代码来源:PhabricatorConfigEditor.php

示例11: getApplicationTransactionTitle

 public function getApplicationTransactionTitle(PhabricatorApplicationTransaction $xaction)
 {
     $author_phid = $xaction->getAuthorPHID();
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     if ($old && !$new) {
         return pht('%s removed %s as %s.', $xaction->renderHandleLink($author_phid), $xaction->renderHandleLink($old), $this->getFieldName());
     } else {
         if ($new && !$old) {
             return pht('%s set %s to %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName(), $xaction->renderHandleLink($new));
         } else {
             return pht('%s changed %s from %s to %s.', $xaction->renderHandleLink($author_phid), $this->getFieldName(), $xaction->renderHandleLink($old), $xaction->renderHandleLink($new));
         }
     }
 }
开发者ID:denghp,项目名称:phabricator,代码行数:15,代码来源:PhabricatorStandardCustomFieldCredential.php

示例12: applyApplicationTransactionExternalEffects

 public function applyApplicationTransactionExternalEffects(PhabricatorApplicationTransaction $xaction)
 {
     $object_phid = $xaction->getObjectPHID();
     $old = $this->decodeValue($xaction->getOldValue());
     $new = $this->decodeValue($xaction->getNewValue());
     $old_phids = array_fuse($old);
     $new_phids = array_fuse($new);
     $rem_phids = array_diff_key($old_phids, $new_phids);
     $add_phids = array_diff_key($new_phids, $old_phids);
     $altered_phids = $rem_phids + $add_phids;
     if (!$altered_phids) {
         return;
     }
     $authorizations = id(new DrydockAuthorizationQuery())->setViewer(PhabricatorUser::getOmnipotentUser())->withObjectPHIDs(array($object_phid))->withBlueprintPHIDs($altered_phids)->execute();
     $authorizations = mpull($authorizations, null, 'getBlueprintPHID');
     $state_active = DrydockAuthorization::OBJECTAUTH_ACTIVE;
     $state_inactive = DrydockAuthorization::OBJECTAUTH_INACTIVE;
     $state_requested = DrydockAuthorization::BLUEPRINTAUTH_REQUESTED;
     // Disable the object side of the authorization for any existing
     // authorizations.
     foreach ($rem_phids as $rem_phid) {
         $authorization = idx($authorizations, $rem_phid);
         if (!$authorization) {
             continue;
         }
         $authorization->setObjectAuthorizationState($state_inactive)->save();
     }
     // For new authorizations, either add them or reactivate them depending
     // on the current state.
     foreach ($add_phids as $add_phid) {
         $needs_update = false;
         $authorization = idx($authorizations, $add_phid);
         if (!$authorization) {
             $authorization = id(new DrydockAuthorization())->setObjectPHID($object_phid)->setObjectAuthorizationState($state_active)->setBlueprintPHID($add_phid)->setBlueprintAuthorizationState($state_requested);
             $needs_update = true;
         } else {
             $current_state = $authorization->getObjectAuthorizationState();
             if ($current_state != $state_active) {
                 $authorization->setObjectAuthorizationState($state_active);
                 $needs_update = true;
             }
         }
         if ($needs_update) {
             $authorization->save();
         }
     }
 }
开发者ID:angieatdropboxdotcom,项目名称:phabricator,代码行数:47,代码来源:PhabricatorStandardCustomFieldBlueprints.php

示例13: transactionHasEffect

 protected function transactionHasEffect(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     switch ($xaction->getTransactionType()) {
         case PhabricatorSlowvoteTransaction::TYPE_RESPONSES:
             if ($old === null) {
                 return true;
             }
             return (int) $old !== (int) $new;
         case PhabricatorSlowvoteTransaction::TYPE_SHUFFLE:
             if ($old === null) {
                 return true;
             }
             return (bool) $old !== (bool) $new;
     }
     return parent::transactionHasEffect($object, $xaction);
 }
开发者ID:fengshao0907,项目名称:phabricator,代码行数:18,代码来源:PhabricatorSlowvoteEditor.php

示例14: applyCustomExternalTransaction

 protected function applyCustomExternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     switch ($xaction->getTransactionType()) {
         case ManiphestTransaction::TYPE_PROJECT_COLUMN:
             $board_phid = idx($xaction->getNewValue(), 'projectPHID');
             if (!$board_phid) {
                 throw new Exception(pht("Expected '%s' in column transaction.", 'projectPHID'));
             }
             $old_phids = idx($xaction->getOldValue(), 'columnPHIDs', array());
             $new_phids = idx($xaction->getNewValue(), 'columnPHIDs', array());
             if (count($new_phids) !== 1) {
                 throw new Exception(pht("Expected exactly one '%s' in column transaction.", 'columnPHIDs'));
             }
             $columns = id(new PhabricatorProjectColumnQuery())->setViewer($this->requireActor())->withPHIDs($new_phids)->execute();
             $columns = mpull($columns, null, 'getPHID');
             $positions = id(new PhabricatorProjectColumnPositionQuery())->setViewer($this->requireActor())->withObjectPHIDs(array($object->getPHID()))->withBoardPHIDs(array($board_phid))->execute();
             $before_phid = idx($xaction->getNewValue(), 'beforePHID');
             $after_phid = idx($xaction->getNewValue(), 'afterPHID');
             if (!$before_phid && !$after_phid && $old_phids == $new_phids) {
                 // If we are not moving the object between columns and also not
                 // reordering the position, this is a move on some other order
                 // (like priority). We can leave the positions untouched and just
                 // bail, there's no work to be done.
                 return;
             }
             // Otherwise, we're either moving between columns or adjusting the
             // object's position in the "natural" ordering, so we do need to update
             // some rows.
             // Remove all existing column positions on the board.
             foreach ($positions as $position) {
                 $position->delete();
             }
             // Add the new column positions.
             foreach ($new_phids as $phid) {
                 $column = idx($columns, $phid);
                 if (!$column) {
                     throw new Exception(pht('No such column "%s" exists!', $phid));
                 }
                 // Load the other object positions in the column. Note that we must
                 // skip implicit column creation to avoid generating a new position
                 // if the target column is a backlog column.
                 $other_positions = id(new PhabricatorProjectColumnPositionQuery())->setViewer($this->requireActor())->withColumns(array($column))->withBoardPHIDs(array($board_phid))->setSkipImplicitCreate(true)->execute();
                 $other_positions = msort($other_positions, 'getOrderingKey');
                 // Set up the new position object. We're going to figure out the
                 // right sequence number and then persist this object with that
                 // sequence number.
                 $new_position = id(new PhabricatorProjectColumnPosition())->setBoardPHID($board_phid)->setColumnPHID($column->getPHID())->setObjectPHID($object->getPHID());
                 $updates = array();
                 $sequence = 0;
                 // If we're just dropping this into the column without any specific
                 // position information, put it at the top.
                 if (!$before_phid && !$after_phid) {
                     $new_position->setSequence($sequence)->save();
                     $sequence++;
                 }
                 foreach ($other_positions as $position) {
                     $object_phid = $position->getObjectPHID();
                     // If this is the object we're moving before and we haven't
                     // saved yet, insert here.
                     if ($before_phid == $object_phid && !$new_position->getID()) {
                         $new_position->setSequence($sequence)->save();
                         $sequence++;
                     }
                     // This object goes here in the sequence; we might need to update
                     // the row.
                     if ($sequence != $position->getSequence()) {
                         $updates[$position->getID()] = $sequence;
                     }
                     $sequence++;
                     // If this is the object we're moving after and we haven't saved
                     // yet, insert here.
                     if ($after_phid == $object_phid && !$new_position->getID()) {
                         $new_position->setSequence($sequence)->save();
                         $sequence++;
                     }
                 }
                 // We should have found a place to put it.
                 if (!$new_position->getID()) {
                     throw new Exception(pht('Unable to find a place to insert object on column!'));
                 }
                 // If we changed other objects' column positions, bulk reorder them.
                 if ($updates) {
                     $position = new PhabricatorProjectColumnPosition();
                     $conn_w = $position->establishConnection('w');
                     $pairs = array();
                     foreach ($updates as $id => $sequence) {
                         // This is ugly because MySQL gets upset with us if it is
                         // configured strictly and we attempt inserts which can't work.
                         // We'll never actually do these inserts since they'll always
                         // collide (triggering the ON DUPLICATE KEY logic), so we just
                         // provide dummy values in order to get there.
                         $pairs[] = qsprintf($conn_w, '(%d, %d, "", "", "")', $id, $sequence);
                     }
                     queryfx($conn_w, 'INSERT INTO %T (id, sequence, boardPHID, columnPHID, objectPHID)
             VALUES %Q ON DUPLICATE KEY UPDATE sequence = VALUES(sequence)', $position->getTableName(), implode(', ', $pairs));
                 }
             }
             break;
         default:
             break;
//.........这里部分代码省略.........
开发者ID:miaokuan,项目名称:phabricator,代码行数:101,代码来源:ManiphestTransactionEditor.php

示例15: applyInverseEdgeTransactions

 private function applyInverseEdgeTransactions(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction, $inverse_type)
 {
     $old = $xaction->getOldValue();
     $new = $xaction->getNewValue();
     $add = array_keys(array_diff_key($new, $old));
     $rem = array_keys(array_diff_key($old, $new));
     $add = array_fuse($add);
     $rem = array_fuse($rem);
     $all = $add + $rem;
     $nodes = id(new PhabricatorObjectQuery())->setViewer($this->requireActor())->withPHIDs($all)->execute();
     foreach ($nodes as $node) {
         if (!$node instanceof PhabricatorApplicationTransactionInterface) {
             continue;
         }
         $editor = $node->getApplicationTransactionEditor();
         $template = $node->getApplicationTransactionTemplate();
         $target = $node->getApplicationTransactionObject();
         if (isset($add[$node->getPHID()])) {
             $edge_edit_type = '+';
         } else {
             $edge_edit_type = '-';
         }
         $template->setTransactionType($xaction->getTransactionType())->setMetadataValue('edge:type', $inverse_type)->setNewValue(array($edge_edit_type => array($object->getPHID() => $object->getPHID())));
         $editor->setContinueOnNoEffect(true)->setContinueOnMissingFields(true)->setParentMessageID($this->getParentMessageID())->setIsInverseEdgeEditor(true)->setActor($this->requireActor())->setActingAsPHID($this->getActingAsPHID())->setContentSource($this->getContentSource());
         $editor->applyTransactions($target, array($template));
     }
 }
开发者ID:sethkontny,项目名称:phabricator,代码行数:27,代码来源:PhabricatorApplicationTransactionEditor.php


注:本文中的PhabricatorApplicationTransaction::getOldValue方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。