本文整理汇总了PHP中Build::GenerateUuid方法的典型用法代码示例。如果您正苦于以下问题:PHP Build::GenerateUuid方法的具体用法?PHP Build::GenerateUuid怎么用?PHP Build::GenerateUuid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Build
的用法示例。
在下文中一共展示了Build::GenerateUuid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CreateParentBuild
/** Create a new build as a parent of $this and sets $this->ParentId.
* Assumes many fields have been set prior to calling this function.
**/
public function CreateParentBuild($numErrors, $numWarnings)
{
if ($numErrors < 0) {
$numErrors = 0;
}
if ($numWarnings < 0) {
$numWarnings = 0;
}
// Check if there's an existing build that should be the parent.
// This would be a standalone build (parent=0) with no subproject
// that matches our name, site, stamp, and projectid.
$query = "SELECT id FROM build\n WHERE parentid = 0 AND name = '{$this->Name}' AND\n siteid = '{$this->SiteId}' AND stamp = '{$this->Stamp}' AND\n projectid = '{$this->ProjectId}'\n ";
$result = pdo_query($query);
if (pdo_num_rows($result) > 0) {
$result_array = pdo_fetch_array($result);
$this->SetParentId($result_array['id']);
// Mark it as a parent (parentid of -1).
pdo_query("UPDATE build SET parentid = -1 WHERE id = {$this->ParentId}");
} else {
// Generate a UUID for the parent build. It is distinguished
// from its children by the lack of SubProject (final parameter).
$uuid = Build::GenerateUuid($this->Stamp, $this->Name, $this->SiteId, $this->ProjectId, '');
// Create the parent build here. Note how parent builds
// are indicated by parentid == -1.
$query = "INSERT INTO build\n (parentid, siteid, projectid, stamp, name, type, generator,\n starttime, endtime, submittime, builderrors, buildwarnings,\n uuid, changeid)\n VALUES\n ('-1', '{$this->SiteId}', '{$this->ProjectId}', '{$this->Stamp}',\n '{$this->Name}', '{$this->Type}', '{$this->Generator}',\n '{$this->StartTime}', '{$this->EndTime}', '{$this->SubmitTime}',\n {$numErrors}, {$numWarnings}, '{$uuid}', '{$this->PullRequest}')";
if (!pdo_query($query)) {
// Check if somebody else beat us to creating this parent build.
$existing_id_result = pdo_single_row_query("SELECT id FROM build WHERE uuid = '{$uuid}'");
if ($existing_id_result && array_key_exists('id', $existing_id_result)) {
$this->SetParentId($existing_id_result['id']);
return false;
} else {
add_last_sql_error('Build Insert Parent', $this->ProjectId, $this->Id);
return false;
}
}
if (!$this->ParentId) {
$this->SetParentId(pdo_insert_id('build'));
}
}
// Update the parent's tally of build errors & warnings.
$this->UpdateBuild($this->ParentId, $numErrors, $numWarnings);
// Give the parent a label for this build's subproject.
$label = new Label();
$label->Text = $this->SubProjectName;
$parent = new Build();
$parent->Id = $this->ParentId;
$parent->AddLabel($label);
$parent->InsertLabelAssociations();
// Since we just created a parent we should also update any existing
// builds that should be a child of this parent but aren't yet.
// This happens when Update.xml is parsed first, because it doesn't
// contain info about what subproject it came from.
// TODO: maybe we don't need this any more?
$query = "UPDATE build SET parentid={$this->ParentId}\n WHERE parentid=0 AND siteid='{$this->SiteId}' AND\n name='{$this->Name}' AND stamp='{$this->Stamp}' AND\n projectid={$this->ProjectId}";
if (!pdo_query($query)) {
add_last_sql_error('Build Insert Update Parent', $this->ProjectId, $this->ParentId);
}
return true;
}