本文整理汇总了PHP中ConduitAPIRequest::getAllParameters方法的典型用法代码示例。如果您正苦于以下问题:PHP ConduitAPIRequest::getAllParameters方法的具体用法?PHP ConduitAPIRequest::getAllParameters怎么用?PHP ConduitAPIRequest::getAllParameters使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConduitAPIRequest
的用法示例。
在下文中一共展示了ConduitAPIRequest::getAllParameters方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
protected function execute(ConduitAPIRequest $request)
{
$user = $request->getUser()->getPHID();
$phid = $request->getValue('objectPHID');
$new = false;
$flag = id(new PhabricatorFlag())->loadOneWhere('objectPHID = %s AND ownerPHID = %s', $phid, $user);
if ($flag) {
$params = $request->getAllParameters();
if (isset($params['color'])) {
$flag->setColor($params['color']);
}
if (isset($params['note'])) {
$flag->setNote($params['note']);
}
} else {
$default_color = PhabricatorFlagColor::COLOR_BLUE;
$flag = id(new PhabricatorFlag())->setOwnerPHID($user)->setType(phid_get_type($phid))->setObjectPHID($phid)->setReasonPHID($user)->setColor($request->getValue('color', $default_color))->setNote($request->getValue('note', ''));
$new = true;
}
$this->attachHandleToFlag($flag, $request->getUser());
$flag->save();
$ret = $this->buildFlagInfoDictionary($flag);
$ret['new'] = $new;
return $ret;
}
示例2: execute
protected function execute(ConduitAPIRequest $request)
{
$id = $request->getValue('id');
$phid = $request->getValue('phid');
if ($id && $phid || !$id && !$phid) {
throw new Exception(pht("Specify exactly one of '%s' and '%s'.", 'id', 'phid'));
}
$query = id(new ManiphestTaskQuery())->setViewer($request->getUser())->needSubscriberPHIDs(true)->needProjectPHIDs(true);
if ($id) {
$query->withIDs(array($id));
} else {
$query->withPHIDs(array($phid));
}
$task = $query->executeOne();
$params = $request->getAllParameters();
unset($params['id']);
unset($params['phid']);
if (call_user_func_array('coalesce', $params) === null) {
throw new ConduitException('ERR-NO-EFFECT');
}
if (!$task) {
throw new ConduitException('ERR-BAD-TASK');
}
$task = $this->applyRequest($task, $request, $is_new = false);
return $this->buildTaskInfoDictionary($task);
}
示例3: execute
protected function execute(ConduitAPIRequest $request)
{
$results = array();
$history = DiffusionHistoryQuery::newFromDiffusionRequest(DiffusionRequest::newFromAphrontRequestDictionary($request->getAllParameters()))->setLimit(self::RESULT_LIMIT)->needDirectChanges(true)->needChildChanges(true)->loadHistory();
$raw_commit_identifiers = mpull($history, 'getCommitIdentifier');
$result = array();
foreach ($raw_commit_identifiers as $id) {
$result[] = 'r' . $request->getValue('callsign') . $id;
}
return $result;
}
开发者ID:nguyennamtien,项目名称:phabricator,代码行数:11,代码来源:ConduitAPI_diffusion_getrecentcommitsbypath_Method.php
示例4: buildHumanReadableResponse
private function buildHumanReadableResponse($method, ConduitAPIRequest $request = null, $result = null)
{
$param_rows = array();
$param_rows[] = array('Method', $this->renderAPIValue($method));
if ($request) {
foreach ($request->getAllParameters() as $key => $value) {
$param_rows[] = array(phutil_escape_html($key), $this->renderAPIValue($value));
}
}
$param_table = new AphrontTableView($param_rows);
$param_table->setColumnClasses(array('header', 'wide'));
$result_rows = array();
foreach ($result as $key => $value) {
$result_rows[] = array(phutil_escape_html($key), $this->renderAPIValue($value));
}
$result_table = new AphrontTableView($result_rows);
$result_table->setColumnClasses(array('header', 'wide'));
$param_panel = new AphrontPanelView();
$param_panel->setHeader('Method Parameters');
$param_panel->appendChild($param_table);
$result_panel = new AphrontPanelView();
$result_panel->setHeader('Method Result');
$result_panel->appendChild($result_table);
return $this->buildStandardPageResponse(array($param_panel, $result_panel), array('title' => 'Method Call Result'));
}
示例5: buildHumanReadableResponse
private function buildHumanReadableResponse($method, ConduitAPIRequest $request = null, $result = null, ConduitAPIMethod $method_implementation = null)
{
$param_rows = array();
$param_rows[] = array('Method', $this->renderAPIValue($method));
if ($request) {
foreach ($request->getAllParameters() as $key => $value) {
$param_rows[] = array($key, $this->renderAPIValue($value));
}
}
$param_table = new AphrontTableView($param_rows);
$param_table->setColumnClasses(array('header', 'wide'));
$result_rows = array();
foreach ($result as $key => $value) {
$result_rows[] = array($key, $this->renderAPIValue($value));
}
$result_table = new AphrontTableView($result_rows);
$result_table->setColumnClasses(array('header', 'wide'));
$param_panel = new PHUIObjectBoxView();
$param_panel->setHeaderText(pht('Method Parameters'));
$param_panel->setTable($param_table);
$result_panel = new PHUIObjectBoxView();
$result_panel->setHeaderText(pht('Method Result'));
$result_panel->setTable($result_table);
$method_uri = $this->getApplicationURI('method/' . $method . '/');
$crumbs = $this->buildApplicationCrumbs()->addTextCrumb($method, $method_uri)->addTextCrumb(pht('Call'));
$example_panel = null;
if ($request && $method_implementation) {
$params = $request->getAllParameters();
$example_panel = $this->renderExampleBox($method_implementation, $params);
}
return $this->buildApplicationPage(array($crumbs, $param_panel, $result_panel, $example_panel), array('title' => pht('Method Call Result')));
}
示例6: buildHumanReadableResponse
private function buildHumanReadableResponse($method, ConduitAPIRequest $request = null, $result = null, ConduitAPIMethod $method_implementation = null)
{
$param_rows = array();
$param_rows[] = array('Method', $this->renderAPIValue($method));
if ($request) {
foreach ($request->getAllParameters() as $key => $value) {
$param_rows[] = array($key, $this->renderAPIValue($value));
}
}
$param_table = new AphrontTableView($param_rows);
$param_table->setColumnClasses(array('header', 'wide'));
$result_rows = array();
foreach ($result as $key => $value) {
$result_rows[] = array($key, $this->renderAPIValue($value));
}
$result_table = new AphrontTableView($result_rows);
$result_table->setColumnClasses(array('header', 'wide'));
$param_panel = id(new PHUIObjectBoxView())->setHeaderText(pht('Method Parameters'))->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->setTable($param_table);
$result_panel = id(new PHUIObjectBoxView())->setHeaderText(pht('Method Result'))->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)->setTable($result_table);
$method_uri = $this->getApplicationURI('method/' . $method . '/');
$crumbs = $this->buildApplicationCrumbs()->addTextCrumb($method, $method_uri)->addTextCrumb(pht('Call'))->setBorder(true);
$example_panel = null;
if ($request && $method_implementation) {
$params = $request->getAllParameters();
$example_panel = $this->renderExampleBox($method_implementation, $params);
}
$title = pht('Method Call Result');
$header = id(new PHUIHeaderView())->setHeader($title)->setHeaderIcon('fa-exchange');
$view = id(new PHUITwoColumnView())->setHeader($header)->setFooter(array($param_panel, $result_panel, $example_panel));
$title = pht('Method Call Result');
return $this->newPage()->setTitle($title)->setCrumbs($crumbs)->appendChild($view);
}
示例7: execute
/**
* This method is final because most queries will need to construct a
* @{class:DiffusionRequest} and use it. Consolidating this codepath and
* enforcing @{method:getDiffusionRequest} works when we need it is good.
*
* @{method:getResult} should be overridden by subclasses as necessary, e.g.
* there is a common operation across all version control systems that
* should occur after @{method:getResult}, like formatting a timestamp.
*/
protected final function execute(ConduitAPIRequest $request)
{
$drequest = DiffusionRequest::newFromDictionary(array('user' => $request->getUser(), 'callsign' => $request->getValue('callsign'), 'branch' => $request->getValue('branch'), 'path' => $request->getValue('path'), 'commit' => $request->getValue('commit')));
// Figure out whether we're going to handle this request on this device,
// or proxy it to another node in the cluster.
// If this is a cluster request and we need to proxy, we'll explode here
// to prevent infinite recursion.
$is_cluster_request = $request->getIsClusterRequest();
$repository = $drequest->getRepository();
$client = $repository->newConduitClient($request->getUser(), $is_cluster_request);
if ($client) {
// We're proxying, so just make an intracluster call.
return $client->callMethodSynchronous($this->getAPIMethodName(), $request->getAllParameters());
} else {
// We pass this flag on to prevent proxying of any other Conduit calls
// which we need to make in order to respond to this one. Although we
// could safely proxy them, we take a big performance hit in the common
// case, and doing more proxying wouldn't exercise any additional code so
// we wouldn't gain a testability/predictability benefit.
$drequest->setIsClusterRequest($is_cluster_request);
$this->setDiffusionRequest($drequest);
return $this->getResult($request);
}
}
示例8: execute
/**
* This method is final because most queries will need to construct a
* @{class:DiffusionRequest} and use it. Consolidating this codepath and
* enforcing @{method:getDiffusionRequest} works when we need it is good.
*
* @{method:getResult} should be overridden by subclasses as necessary, e.g.
* there is a common operation across all version control systems that
* should occur after @{method:getResult}, like formatting a timestamp.
*/
protected final function execute(ConduitAPIRequest $request)
{
$identifier = $request->getValue('repository');
if ($identifier === null) {
$identifier = $request->getValue('callsign');
}
$drequest = DiffusionRequest::newFromDictionary(array('user' => $request->getUser(), 'repository' => $identifier, 'branch' => $request->getValue('branch'), 'path' => $request->getValue('path'), 'commit' => $request->getValue('commit')));
if (!$drequest) {
throw new Exception(pht('Repository "%s" is not a valid repository.', $identifier));
}
// Figure out whether we're going to handle this request on this device,
// or proxy it to another node in the cluster.
// If this is a cluster request and we need to proxy, we'll explode here
// to prevent infinite recursion.
$is_cluster_request = $request->getIsClusterRequest();
$viewer = $request->getUser();
$repository = $drequest->getRepository();
$client = $repository->newConduitClient($viewer, $is_cluster_request);
if ($client) {
// We're proxying, so just make an intracluster call.
return $client->callMethodSynchronous($this->getAPIMethodName(), $request->getAllParameters());
} else {
// We pass this flag on to prevent proxying of any other Conduit calls
// which we need to make in order to respond to this one. Although we
// could safely proxy them, we take a big performance hit in the common
// case, and doing more proxying wouldn't exercise any additional code so
// we wouldn't gain a testability/predictability benefit.
$drequest->setIsClusterRequest($is_cluster_request);
$this->setDiffusionRequest($drequest);
// TODO: Allow web UI queries opt out of this if they don't care about
// fetching the most up-to-date data? Synchronization can be slow, and a
// lot of web reads are probably fine if they're a few seconds out of
// date.
id(new DiffusionRepositoryClusterEngine())->setViewer($viewer)->setRepository($repository)->synchronizeWorkingCopyBeforeRead();
return $this->getResult($request);
}
}
示例9: buildHumanReadableResponse
private function buildHumanReadableResponse($method, ConduitAPIRequest $request = null, $result = null)
{
$param_rows = array();
$param_rows[] = array('Method', $this->renderAPIValue($method));
if ($request) {
foreach ($request->getAllParameters() as $key => $value) {
$param_rows[] = array($key, $this->renderAPIValue($value));
}
}
$param_table = new AphrontTableView($param_rows);
$param_table->setDeviceReadyTable(true);
$param_table->setColumnClasses(array('header', 'wide'));
$result_rows = array();
foreach ($result as $key => $value) {
$result_rows[] = array($key, $this->renderAPIValue($value));
}
$result_table = new AphrontTableView($result_rows);
$result_table->setDeviceReadyTable(true);
$result_table->setColumnClasses(array('header', 'wide'));
$param_panel = new AphrontPanelView();
$param_panel->setHeader('Method Parameters');
$param_panel->appendChild($param_table);
$result_panel = new AphrontPanelView();
$result_panel->setHeader('Method Result');
$result_panel->appendChild($result_table);
$param_head = id(new PHUIHeaderView())->setHeader(pht('Method Parameters'));
$result_head = id(new PHUIHeaderView())->setHeader(pht('Method Result'));
$method_uri = $this->getApplicationURI('method/' . $method . '/');
$crumbs = $this->buildApplicationCrumbs()->addTextCrumb($method, $method_uri)->addTextCrumb(pht('Call'));
return $this->buildApplicationPage(array($crumbs, $param_head, $param_table, $result_head, $result_table), array('title' => 'Method Call Result'));
}