本文整理汇总了PHP中JDatabaseDriver::unlockTables方法的典型用法代码示例。如果您正苦于以下问题:PHP JDatabaseDriver::unlockTables方法的具体用法?PHP JDatabaseDriver::unlockTables怎么用?PHP JDatabaseDriver::unlockTables使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JDatabaseDriver
的用法示例。
在下文中一共展示了JDatabaseDriver::unlockTables方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _unlock
/**
* Method to unlock the database table for writing.
*
* @return boolean True on success.
*
* @since 11.1
*/
protected function _unlock()
{
$this->_db->unlockTables();
$this->_locked = false;
return true;
}
示例2: unlock
/**
* Method to unlock the database table for writing.
*
* @return boolean True on success.
*
* @since K4.0
*/
protected function unlock()
{
static::$db->unlockTables();
static::$_locked = false;
return true;
}
示例3: saveParams
/**
* Save the plugin parameters
*
* @return boolean
*
* @since 3.5
*/
private function saveParams()
{
// Update params
$this->params->set('lastrun', time());
$this->params->set('unique_id', $this->getUniqueId());
$interval = (int) $this->params->get('interval', 12);
$this->params->set('interval', $interval ? $interval : 12);
$query = $this->db->getQuery(true)->update($this->db->quoteName('#__extensions'))->set($this->db->quoteName('params') . ' = ' . $this->db->quote($this->params->toString('JSON')))->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('system'))->where($this->db->quoteName('element') . ' = ' . $this->db->quote('stats'));
try {
// Lock the tables to prevent multiple plugin executions causing a race condition
$this->db->lockTable('#__extensions');
} catch (Exception $e) {
// If we can't lock the tables it's too risky to continue execution
return false;
}
try {
// Update the plugin parameters
$result = $this->db->setQuery($query)->execute();
$this->clearCacheGroups(array('com_plugins'), array(0, 1));
} catch (Exception $exc) {
// If we failed to execute
$this->db->unlockTables();
$result = false;
}
try {
// Unlock the tables after writing
$this->db->unlockTables();
} catch (Exception $e) {
// If we can't lock the tables assume we have somehow failed
$result = false;
}
return $result;
}
示例4: onAfterInitialise
/**
* Listener for the `onAfterInitialise` event
*
* @return void
*
* @since 3.5
*/
public function onAfterInitialise()
{
// Only run this in admin
if (!$this->app->isAdmin()) {
return;
}
// Do we need to run? Compare the last run timestamp stored in the plugin's options with the current
// timestamp. If the difference is greater than the cache timeout we shall not execute again.
$now = time();
$last = (int) $this->params->get('lastrun', 0);
// 12 hours - 60*60*12 = 43200
if (!defined('PLG_SYSTEM_STATS_DEBUG') && abs($now - $last) < 43200) {
return;
}
// Update last run status
$this->params->set('lastrun', $now);
$uniqueId = $this->params->get('unique_id', '');
/*
* If the unique ID is empty (because we have never submitted a piece of data before or because the refresh button
* has been used - generate a new ID and store it in the database for future use.
*/
if (empty($uniqueId)) {
$uniqueId = hash('sha1', JUserHelper::genRandomPassword(28) . time());
$this->params->set('unique_id', $uniqueId);
}
$query = $this->db->getQuery(true)->update($this->db->quoteName('#__extensions'))->set($this->db->quoteName('params') . ' = ' . $this->db->quote($this->params->toString('JSON')))->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))->where($this->db->quoteName('folder') . ' = ' . $this->db->quote('system'))->where($this->db->quoteName('element') . ' = ' . $this->db->quote('stats'));
try {
// Lock the tables to prevent multiple plugin executions causing a race condition
$this->db->lockTable('#__extensions');
} catch (Exception $e) {
// If we can't lock the tables it's too risky to continue execution
return;
}
try {
// Update the plugin parameters
$result = $this->db->setQuery($query)->execute();
$this->clearCacheGroups(array('com_plugins'), array(0, 1));
} catch (Exception $exc) {
// If we failed to execute
$this->db->unlockTables();
$result = false;
}
try {
// Unlock the tables after writing
$this->db->unlockTables();
} catch (Exception $e) {
// If we can't lock the tables assume we have somehow failed
$result = false;
}
// Abort on failure
if (!$result) {
return;
}
$data = array('unique_id' => $uniqueId, 'php_version' => PHP_VERSION, 'db_type' => $this->db->name, 'db_version' => $this->db->getVersion(), 'cms_version' => JVERSION, 'server_os' => php_uname('s') . ' ' . php_uname('r'));
// Don't let the request take longer than 2 seconds to avoid page timeout issues
try {
// Don't let the request take longer than 2 seconds to avoid page timeout issues
JHttpFactory::getHttp()->post($this->params->get('url', 'https://developer.joomla.org/stats/submit'), $data, null, 2);
} catch (UnexpectedValueException $e) {
// There was an error sending stats. Should we do anything?
JLog::add('Could not send site statistics to remote server: ' . $e->getMessage(), JLog::WARNING, 'stats');
} catch (RuntimeException $e) {
// There was an error connecting to the server or in the post request
JLog::add('Could not connect to statistics server: ' . $e->getMessage(), JLog::WARNING, 'stats');
} catch (Exception $e) {
// An unexpected error in processing; don't let this failure kill the site
JLog::add('Unexpected error connecting to statistics server: ' . $e->getMessage(), JLog::WARNING, 'stats');
}
}