本文整理汇总了PHP中ApiBase::isWriteMode方法的典型用法代码示例。如果您正苦于以下问题:PHP ApiBase::isWriteMode方法的具体用法?PHP ApiBase::isWriteMode怎么用?PHP ApiBase::isWriteMode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ApiBase
的用法示例。
在下文中一共展示了ApiBase::isWriteMode方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: checkExecutePermissions
/**
* Check for sufficient permissions to execute
* @param ApiBase $module An Api module
*/
protected function checkExecutePermissions($module)
{
$user = $this->getUser();
if ($module->isReadMode() && !User::isEveryoneAllowed('read') && !$user->isAllowed('read')) {
$this->dieUsageMsg('readrequired');
}
if ($module->isWriteMode()) {
if (!$this->mEnableWrite) {
$this->dieUsageMsg('writedisabled');
}
if (!$user->isAllowed('writeapi')) {
$this->dieUsageMsg('writerequired');
}
if (wfReadOnly()) {
$this->dieReadOnly();
}
}
// Allow extensions to stop execution for arbitrary reasons.
$message = false;
if (!Hooks::run('ApiCheckCanExecute', array($module, $user, &$message))) {
$this->dieUsageMsg($message);
}
}
示例2: checkReadOnly
/**
* Check if the DB is read-only for this user
* @param ApiBase $module An Api module
*/
protected function checkReadOnly($module)
{
if (wfReadOnly()) {
$this->dieReadOnly();
}
if ($module->isWriteMode() && in_array('bot', $this->getUser()->getGroups()) && wfGetLB()->getServerCount() > 1) {
// Figure out how many servers have passed the lag threshold
$numLagged = 0;
$lagLimit = $this->getConfig()->get('APIMaxLagThreshold');
foreach (wfGetLB()->getLagTimes() as $lag) {
if ($lag > $lagLimit) {
++$numLagged;
}
}
// If a majority of slaves are too lagged then disallow writes
$slaveCount = wfGetLB()->getServerCount() - 1;
if ($numLagged >= ceil($slaveCount / 2)) {
$parsed = $this->parseMsg(array('readonlytext'));
$this->dieUsage($parsed['info'], $parsed['code'], 0, array('readonlyreason' => "Waiting for {$numLagged} lagged database(s)"));
}
}
}
示例3: setRequestExpectations
/**
* Set database connection, query, and write expectations given this module request
* @param ApiBase $module
*/
protected function setRequestExpectations(ApiBase $module)
{
$limits = $this->getConfig()->get('TrxProfilerLimits');
$trxProfiler = Profiler::instance()->getTransactionProfiler();
if ($this->getRequest()->wasPosted()) {
if ($module->isWriteMode()) {
$trxProfiler->setExpectations($limits['POST'], __METHOD__);
} else {
$trxProfiler->setExpectations($limits['POST-nonwrite'], __METHOD__);
}
} else {
$trxProfiler->setExpectations($limits['GET'], __METHOD__);
}
}
示例4: setRequestExpectations
/**
* Set database connection, query, and write expectations given this module request
* @param ApiBase $module
*/
protected function setRequestExpectations(ApiBase $module)
{
$limits = $this->getConfig()->get('TrxProfilerLimits');
$trxProfiler = Profiler::instance()->getTransactionProfiler();
$trxProfiler->setLogger(LoggerFactory::getInstance('DBPerformance'));
if ($this->getRequest()->hasSafeMethod()) {
$trxProfiler->setExpectations($limits['GET'], __METHOD__);
} elseif ($this->getRequest()->wasPosted() && !$module->isWriteMode()) {
$trxProfiler->setExpectations($limits['POST-nonwrite'], __METHOD__);
$this->getRequest()->markAsSafeRequest();
} else {
$trxProfiler->setExpectations($limits['POST'], __METHOD__);
}
}