本文整理匯總了PHP中Q::loadClass方法的典型用法代碼示例。如果您正苦於以下問題:PHP Q::loadClass方法的具體用法?PHP Q::loadClass怎麽用?PHP Q::loadClass使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Q
的用法示例。
在下文中一共展示了Q::loadClass方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: __construct
/**
* 構造函數
*
* @param array $app_config
*
* 構造應用程序對象
*/
protected function __construct(array $app_config)
{
// #IFDEF DEBUG
global $g_boot_time;
QLog::log('--- STARTUP TIME --- ' . $g_boot_time, QLog::DEBUG);
// #ENDIF
/**
* 初始化運行環境
*/
// 禁止 magic quotes
set_magic_quotes_runtime(0);
// 處理被 magic quotes 自動轉義過的數據
if (get_magic_quotes_gpc()) {
$in = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
while (list($k, $v) = each($in)) {
foreach ($v as $key => $val) {
if (!is_array($val)) {
$in[$k][$key] = stripslashes($val);
continue;
}
$in[] =& $in[$k][$key];
}
}
unset($in);
}
// 設置異常處理函數
set_exception_handler(array($this, 'exception_handler'));
// 初始化應用程序設置
$this->_app_config = $app_config;
$this->_initConfig();
Q::replaceIni('app_config', $app_config);
// 設置默認的時區
date_default_timezone_set(Q::ini('l10n_default_timezone'));
// 設置 session 服務
if (Q::ini('runtime_session_provider')) {
Q::loadClass(Q::ini('runtime_session_provider'));
}
// 打開 session
if (Q::ini('runtime_session_start')) {
session_start();
// #IFDEF DEBUG
QLog::log('session_start()', QLog::DEBUG);
QLog::log('session_id: ' . session_id(), QLog::DEBUG);
// #ENDIF
}
// 導入類搜索路徑
Q::import($app_config['APP_DIR']);
Q::import($app_config['APP_DIR'] . '/model');
Q::import($app_config['MODULE_DIR']);
// 注冊應用程序對象
Q::register($this, 'app');
}
示例2: _init1
/**
* 第一步初始化
*
* @param string $class
*/
protected function _init1($class)
{
// 從指定類獲得初步的定義信息
Q::loadClass($class);
$this->class_name = $class;
$ref = (array) call_user_func(array($class, '__define'));
// 設置 find_sql
if (!empty($ref['find_sql'])) {
$this->_find_sql = $ref['find_sql'];
} else {
throw new QDB_ActiveRecord_Exception('must set "find_sql".');
}
if (!empty($ref['dsn'])) {
$this->_dsn = $ref['dsn'];
}
// 根據字段定義確定字段屬性
if (empty($ref['props']) || !is_array($ref['props'])) {
$ref['props'] = array();
}
foreach ($ref['props'] as $prop_name => $config) {
$this->addProp($prop_name, $config);
}
// 綁定行為插件
if (isset($ref['behaviors'])) {
$config = isset($ref['behaviors_settings']) ? $ref['behaviors_settings'] : array();
$this->bindBehaviors($ref['behaviors'], $config);
}
}
示例3: execute
/**
* 執行一個查詢,返回一個查詢對象或者 boolean 值,出錯時拋出異常
*
* $sql 是要執行的 SQL 語句字符串,而 $inputarr 則是提供給 SQL 語句中參數占位符需要的值。
*
* 如果執行的查詢是諸如 INSERT、DELETE、UPDATE 等不會返回結果集的操作,
* 則 execute() 執行成功後會返回 true,失敗時將拋出異常。
*
* 如果執行的查詢是 SELECT 等會返回結果集的操作,
* 則 execute() 執行成功後會返回一個 DBO_Result 對象,失敗時將拋出異常。
*
* QDB_Result_Abstract 對象封裝了查詢結果句柄,而不是結果集。
*
* @param string $sql
* @param array $inputarr
*
* @return QDB_Result_Abstract
*/
function execute($sql, $inputarr = null)
{
if (is_array($inputarr)) {
$sql = $this->_fakebind($sql, $inputarr);
}
if (!$this->_conn) {
$this->connect();
}
//print_R($sql);
$this->_lastrs = @pg_query($this->_conn, $sql);
if ($this->_log_enabled) {
QLog::log($sql, QLog::DEBUG);
}
if (is_resource($this->_lastrs)) {
Q::loadClass('Qdb_Result_Pgsql');
return new QDB_Result_Pgsql($this->_lastrs, $this->_fetch_mode);
} elseif ($this->_lastrs) {
$this->_last_err = null;
$this->_last_err_code = null;
return $this->_lastrs;
} else {
$this->_last_err = pg_errormessage($this->_conn);
$this->_last_err_code = null;
$this->_has_failed_query = true;
throw new QDB_Exception($sql, $this->_last_err, $this->_last_err_code);
}
}
示例4: _init1
/**
* 第一步初始化
*
* @param string $class
*/
protected function _init1($class)
{
// 從指定類獲得初步的定義信息
Q::loadClass($class);
$this->class_name = $class;
$ref = (array) call_user_func(array($class, '__define'));
/**
* 檢查是否是繼承
*/
if (!empty($ref['inherit'])) {
$this->inherit_base_class = $ref['inherit'];
/**
* 繼承類的 __define() 方法隻需要指定與父類不同的內容
*/
$base_ref = (array) call_user_func(array($this->inherit_base_class, '__define'));
$ref = array_merge_recursive($base_ref, $ref);
}
// 被繼承的類
$this->inherit_type_field = !empty($ref['inherit_type_field']) ? $ref['inherit_type_field'] : null;
// 設置表數據入口對象
$table_config = !empty($ref['table_config']) ? (array) $ref['table_config'] : array();
if (!empty($ref['table_class'])) {
$this->table = $this->_tableByClass($ref['table_class'], $table_config);
} else {
$this->table = $this->_tableByName($ref['table_name'], $table_config);
}
$this->table_meta = $this->table->columns();
// 根據字段定義確定字段屬性
if (empty($ref['props']) || !is_array($ref['props'])) {
$ref['props'] = array();
}
foreach ($ref['props'] as $prop_name => $config) {
$this->addProp($prop_name, $config);
}
// 將沒有指定的字段也設置為對象屬性
foreach ($this->table_meta as $prop_name => $field) {
if (isset($this->props2fields[$prop_name])) {
continue;
}
$this->addProp($prop_name, $field);
}
// 設置其他選項
if (!empty($ref['create_reject'])) {
$this->create_reject = array_flip(Q::normalize($ref['create_reject']));
}
if (!empty($ref['update_reject'])) {
$this->update_reject = array_flip(Q::normalize($ref['update_reject']));
}
if (!empty($ref['create_autofill']) && is_array($ref['create_autofill'])) {
$this->create_autofill = $ref['create_autofill'];
}
if (!empty($ref['update_autofill']) && is_array($ref['update_autofill'])) {
$this->update_autofill = $ref['update_autofill'];
}
if (!empty($ref['attr_accessible'])) {
$this->attr_accessible = array_flip(Q::normalize($ref['attr_accessible']));
}
if (!empty($ref['attr_protected'])) {
$this->attr_protected = array_flip(Q::normalize($ref['attr_protected']));
}
// 準備驗證規則
if (empty($ref['validations']) || !is_array($ref['validations'])) {
$ref['validations'] = array();
}
$this->validations = $this->_prepareValidationRules($ref['validations']);
// 設置對象 ID 屬性名
$pk = $this->table->getPK();
$this->idname = array();
foreach ($this->table->getPK() as $pk) {
$pn = $this->fields2props[$pk];
$this->idname[$pn] = $pn;
}
$this->idname_count = count($this->idname);
// 綁定行為插件
if (isset($ref['behaviors'])) {
$config = isset($ref['behaviors_settings']) ? $ref['behaviors_settings'] : array();
$this->bindBehaviors($ref['behaviors'], $config);
}
}
示例5: testLoadClassWithCaseSensitive
/**
* 測試載入類(大小寫敏感)
*/
function testLoadClassWithCaseSensitive()
{
Q::loadClass('Class2');
}
示例6: array
<?php
/////////////////////////////////////////////////////////////////////////////
// QeePHP Framework
//
// Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com)
//
// 許可協議,請查看源代碼中附帶的 LICENSE.TXT 文件,
// 或者訪問 http://www.qeephp.org/ 獲得詳細信息。
/////////////////////////////////////////////////////////////////////////////
/**
* 定義 Chili_Runner_Abstract 類
*/
// {{ include
Q::loadClass('Chili_Exception');
// }}
/**
* Chili_Runner_Abstract 是應用程序構造器的抽象類
*
* @package chili
*/
abstract class Chili_Runner_Abstract
{
/**
* 複製文件時要動態替換的內容
*
* @var array
*/
private $content_search = array('%QEEPHP_INST_DIR%', '%APP_ID%');
private $content_replace = array();
/**
示例7: 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);
}