本文整理匯總了PHP中parse_res_name函數的典型用法代碼示例。如果您正苦於以下問題:PHP parse_res_name函數的具體用法?PHP parse_res_name怎麽用?PHP parse_res_name使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了parse_res_name函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getTableName
/**
* 得到完整的數據表名
* @access public
* @return string
*/
public function getTableName()
{
if (empty($this->trueTableName)) {
$tableName = '';
foreach ($this->viewFields as $key => $view) {
// 獲取數據表名稱
if (isset($view['_table'])) {
// 2011/10/17 添加實際表名定義支持 可以實現同一個表的視圖
$tableName .= $view['_table'];
$prefix = $this->tablePrefix;
$tableName = preg_replace_callback("/__([A-Z_-]+)__/sU", function ($match) use($prefix) {
return $prefix . strtolower($match[1]);
}, $tableName);
} else {
$class = parse_res_name($key, C('DEFAULT_M_LAYER'));
$Model = class_exists($class) ? new $class() : M($key);
$tableName .= $Model->getTableName();
}
// 表別名定義
$tableName .= !empty($view['_as']) ? ' ' . $view['_as'] : ' ' . $key;
// 支持ON 條件定義
$tableName .= !empty($view['_on']) ? ' ON ' . $view['_on'] : '';
// 指定JOIN類型 例如 RIGHT INNER LEFT 下一個表有效
$type = !empty($view['_type']) ? $view['_type'] : '';
$tableName .= ' ' . strtoupper($type) . ' JOIN ';
$len = strlen($type . '_JOIN ');
}
$tableName = substr($tableName, 0, -$len);
$this->trueTableName = $tableName;
}
return $this->trueTableName;
}
示例2: D
/**
* 實例化模型類 格式 [資源://][模塊/]模型
* @param string $name 資源地址
* @param string $layer 模型層名稱
* @return Model
*/
function D($name = '', $layer = '')
{
if (empty($name)) {
return new System\Model();
}
static $_model = array();
$layer = $layer ?: C('DEFAULT_M_LAYER');
if (isset($_model[$name . $layer])) {
return $_model[$name . $layer];
}
$class = parse_res_name($name, $layer);
if (class_exists($class)) {
$model = new $class(basename($name));
} elseif (false === strpos($name, '/')) {
// 自動加載公共模塊下麵的模型
if (!C('APP_USE_NAMESPACE')) {
import('Common/' . $layer . '/' . $class);
} else {
$class = '\\Common\\' . $layer . '\\' . $name . $layer;
}
$model = class_exists($class) ? new $class($name) : new System\Model($name);
} else {
System\Log::record('D方法實例化沒找到模型類' . $class, System\Log::NOTICE);
$model = new System\Model(basename($name));
}
$_model[$name . $layer] = $model;
return $model;
}
示例3: D
/**
* 實例化模型類 格式 [資源://][模塊/]模型
* @param string $name 資源地址
* @param string $layer 模型層名稱
* @return Think\Model
*/
function D($name = '')
{
if (empty($name)) {
return new Think\Model();
}
static $_model = array();
$layer = C('DEFAULT_M_LAYER');
if (isset($_model[$name . $layer])) {
return $_model[$name . $layer];
}
$class = parse_res_name($name, $layer);
if (class_exists($class)) {
$model = new $class(basename($name));
} elseif (false === strpos($name, '/')) {
$model = new Think\Model($name);
} else {
$model = new Think\Model(basename($name));
}
$_model[$name . $layer] = $model;
return $model;
}
示例4: A
/**
* 實例化多層控製器 格式:[資源://][模塊/]控製器
* @param string $name 資源地址
* @param string $layer 控製層名稱
* @param integer $level 控製器層次
* @return Think\Controller|false
*/
function A($name, $layer = '', $level = 0)
{
static $_action = array();
$layer = $layer ?: C('DEFAULT_C_LAYER');
$level = $level ?: ($layer == C('DEFAULT_C_LAYER') ? C('CONTROLLER_LEVEL') : 1);
if (isset($_action[$name . $layer])) {
return $_action[$name . $layer];
}
$class = parse_res_name($name, $layer, $level);
if (class_exists($class)) {
$action = new $class();
$_action[$name . $layer] = $action;
return $action;
} else {
return false;
}
}
示例5: A
/**
* A函數用於實例化控製器 格式:[資源://][模塊/]控製器
* @param string $name 資源地址
* @param string $layer 控製層名稱
* @param integer $level 控製器層次
* @return Controller|false
*/
function A($name, $layer = '', $level = '')
{
//$name = "User";
static $_action = array();
$layer = $layer ? $layer : C('DEFAULT_C_LAYER');
$level = $level ? $level : ($layer == C('DEFAULT_C_LAYER') ? C('CONTROLLER_LEVEL') : 1);
if (isset($_action[$name . $layer])) {
return $_action[$name . $layer];
}
//$name = "User";
//$lay = "Controller";
//$level = 1;
$class = parse_res_name($name, $layer, $level);
if (class_exists($class)) {
$action = new $class();
$_action[$name . $layer] = $action;
return $action;
} else {
return false;
}
}
示例6: newObj
private static function newObj($name, $layer)
{
static $_obj = array();
$class = parse_res_name($name, $layer);
if (isset($_obj[$name . $layer])) {
return $_obj[$name . $layer];
}
$class = parse_res_name($name, $layer);
if (class_exists($class)) {
$model = new $class($name);
}
$_obj[$name . $layer] = $model;
return $model;
}
示例7: load
* @param string $baseUrl 起始路徑
* @param string $ext 導入的文件擴展名
* @return void
*/
function load($name, $baseUrl = '', $ext = '.php')
{
$name = str_replace(array('.', '#'), array('/', '.'), $name);
if (empty($baseUrl)) {
if (0 === strpos($name, '@/')) {
//加載當前模塊函數庫
$baseUrl = MODULE_PATH . 'Common/';
$name = substr($name, 2);
} else {
//加載其他模塊函數庫
$array = explode('/', $name);
$baseUrl = APP_PATH . array_shift($array) . '/Common/';
$name = implode('/', $array);