本文整理匯總了PHP中Q::getSingleton方法的典型用法代碼示例。如果您正苦於以下問題:PHP Q::getSingleton方法的具體用法?PHP Q::getSingleton怎麽用?PHP Q::getSingleton使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Q
的用法示例。
在下文中一共展示了Q::getSingleton方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: loadCached
/**
* 載入緩存的 YAML 解析結果,如果緩存失效,則重新解析並生成緩存
*
* @param string $filename
* 要解析的 yaml 文件名
* @param array $replace
* 對於 YAML 內容要進行自動替換的字符串對
* @param string $cache_backend
* 要使用的緩存後端
*
* @return array
* 解析結果
*/
static function loadCached($filename, array $replace = null, $cache_backend = null)
{
static $cache_obj = null;
if (!is_file($filename)) {
throw new QException_FileNotFound($filename);
}
$policy = array('lifetime' => 86400, 'serialize' => true);
$mtime = filemtime($filename);
$id = 'yaml_cache_' . md5($filename);
if (is_null($cache_backend)) {
if (is_null($cache_obj)) {
$cache_obj = Q::getSingleton(Q::getIni('runtime_cache_backend'));
}
$cache = $cache_obj;
} else {
$cache = self::getSingleton($cache_backend);
}
/* @var $cache QCache_File */
$data = $cache->get($id, $policy);
if (!isset($data['yaml']) || empty($data['mtime']) || $data['mtime'] < $mtime) {
// 緩存失效
$data = array('mtime' => $mtime, 'yaml' => self::load($filename, $replace));
$cache->set($id, $data, $policy);
}
return $data['yaml'];
}
示例2: insertBooks
/**
* 創建書籍記錄
*
* @param array $authors
* @param int $nums
*
* @return array
*/
protected function insertBooks(array $authors, $nums = 10)
{
$tableBooks = Q::getSingleton('Table_Books');
/* @var $tableBooks Table_Books */
$authors = array_values($authors);
$authors_count = count($authors);
$books = array();
for ($i = 0; $i < $nums; $i++) {
$c = mt_rand(1, $authors_count);
$rand_authors = array();
for ($j = 0; $j < $c; $j++) {
$rand_authors[] = $authors[mt_rand(0, $j * $j) % $authors_count];
}
$book = array('title' => 'BOOK ' . mt_rand(), 'intro' => 'INTRO ' . mt_rand(), 'authors' => $rand_authors);
$books[] = $tableBooks->create($book);
}
return $books;
}
示例3: run
/**
* QeePHP 應用程序 MVC 模式入口
*
* @return mixed
*/
function run()
{
// #IFDEF DEBUG
QLog::log(__METHOD__, QLog::DEBUG);
// #ENDIF
// 設置默認的時區
date_default_timezone_set($this->context->getIni('l10n_default_timezone'));
// 設置 session 服務
if ($this->context->getIni('runtime_session_provider')) {
Q::loadClass($this->context->getIni('runtime_session_provider'));
}
// 打開 session
if ($this->context->getIni('runtime_session_start')) {
// #IFDEF DEBUG
QLog::log('session_start()', QLog::DEBUG);
// #ENDIF
session_start();
}
// 設置驗證失敗錯誤處理的回調方法
$this->context->setIni('dispatcher_on_access_denied', array($this, 'onAccessDenied'));
// 設置處理動作方法未找到錯誤的回調方法
$this->context->setIni('dispatcher_on_action_not_found', array($this, 'onActionNotFound'));
// 從 session 中提取 flash message
if (isset($_SESSION)) {
$key = $this->context->getIni('app_flash_message_key');
$arr = isset($_SESSION[$key]) ? $_SESSION[$key] : null;
if (!is_array($arr)) {
$arr = array(self::FLASH_MSG_INFO, $arr);
} elseif (!isset($arr[1])) {
$arr = array(self::FLASH_MSG_INFO, $arr[0]);
}
if ($arr[0] != self::FLASH_MSG_ERROR && $arr[0] != self::FLASH_MSG_INFO && $arr[0] != self::FLASH_MSG_WARNING) {
$arr[0] = self::FLASH_MSG_INFO;
}
$this->_flash_message_type = $arr[0];
$this->_flash_message = $arr[1];
unset($_SESSION[$key]);
}
// 初始化訪問控製對象
$this->acl = Q::getSingleton('QACL');
// 執行動作
$context = QContext::instance($this->context->module_name, $this->_appid);
return $this->_executeAction($context);
}
示例4: log
/**
* 追加日誌到日誌緩存
*
* @param string $msg
* @param int $type
*/
static function log($msg, $type = self::DEBUG)
{
static $instance;
if (is_null($instance)) {
$instance = Q::getSingleton('QLog');
}
/* @var $instance QLog */
$instance->append($msg, $type);
}