本文整理汇总了PHP中Revision::getRawText方法的典型用法代码示例。如果您正苦于以下问题:PHP Revision::getRawText方法的具体用法?PHP Revision::getRawText怎么用?PHP Revision::getRawText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Revision
的用法示例。
在下文中一共展示了Revision::getRawText方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getRawText
/**
* Get the text of the current revision. No side-effects...
*
* @return String|bool The text of the current revision. False on failure
*/
public function getRawText()
{
$this->loadLastEdit();
if ($this->mLastRevision) {
return $this->mLastRevision->getRawText();
}
return false;
}
示例2: execute
public function execute()
{
$db = wfGetDB(DB_MASTER);
if (!$db->tableExists('revision')) {
$this->error("revision table does not exist", true);
}
$this->output("Populating rev_len column\n");
$start = $db->selectField('revision', 'MIN(rev_id)', false, __FUNCTION__);
$end = $db->selectField('revision', 'MAX(rev_id)', false, __FUNCTION__);
if (is_null($start) || is_null($end)) {
$this->output("...revision table seems to be empty.\n");
$db->insert('updatelog', array('ul_key' => 'populate rev_len'), __METHOD__, 'IGNORE');
return;
}
# Do remaining chunks
$blockStart = intval($start);
$blockEnd = intval($start) + $this->mBatchSize - 1;
$count = 0;
$missing = 0;
while ($blockStart <= $end) {
$this->output("...doing rev_id from {$blockStart} to {$blockEnd}\n");
$res = $db->select('revision', Revision::selectFields(), array("rev_id >= {$blockStart}", "rev_id <= {$blockEnd}", "rev_len IS NULL"), __METHOD__);
# Go through and update rev_len from these rows.
foreach ($res as $row) {
$rev = new Revision($row);
$text = $rev->getRawText();
if (!is_string($text)) {
# This should not happen, but sometimes does (bug 20757)
$this->output("Text of revision {$row->rev_id} unavailable!\n");
$missing++;
} else {
# Update the row...
$db->update('revision', array('rev_len' => strlen($text)), array('rev_id' => $row->rev_id), __METHOD__);
$count++;
}
}
$blockStart += $this->mBatchSize;
$blockEnd += $this->mBatchSize;
wfWaitForSlaves(5);
}
$logged = $db->insert('updatelog', array('ul_key' => 'populate rev_len'), __METHOD__, 'IGNORE');
if ($logged) {
$this->output("rev_len population complete ... {$count} rows changed ({$missing} missing)\n");
return true;
} else {
$this->output("Could not insert rev_len population row.\n");
return false;
}
}
示例3: upgradeRow
/**
* @param $row
* @param $table
* @param $idCol
* @param $prefix
* @return bool
*/
protected function upgradeRow($row, $table, $idCol, $prefix)
{
$db = $this->getDB(DB_MASTER);
if ($table === 'archive') {
$rev = Revision::newFromArchiveRow($row);
} else {
$rev = new Revision($row);
}
$text = $rev->getRawText();
if (!is_string($text)) {
# This should not happen, but sometimes does (bug 20757)
$this->output("Text of revision with {$idCol}={$row->{$idCol}} unavailable!\n");
return false;
} else {
$db->update($table, array("{$prefix}_sha1" => Revision::base36Sha1($text)), array($idCol => $row->{$idCol}), __METHOD__);
return true;
}
}