日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析

發布時間:2025/3/15 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要介紹了ThinkPHP中Common/common.php文件常用函數功能,通過注釋的形式詳細分析了C方法、tag方法、B方法及autoload方法的功能與代碼原理,需要的朋友可以參考下

本文實例分析了ThinkPHP/Common/common.php文件常用函數功能。分享給大家供大家參考,具體如下:

/**

* 獲取和設置配置參數 支持批量定義

* @param string|array $name 配置變量

* @param mixed $value 配置值

* @return mixed

*/

function C($name=null, $value=null) {

static $_config = array();

// 無參數時獲取所有

if (empty($name)) {

if(!empty($value) && $array = cache('c_'.$value)) {

//array_change_key_case():將數組中的所有鍵名改為全小寫或大寫,默認會改為全小寫

$_config = array_merge($_config, array_change_key_case($array));

}

return $_config;

}

// 優先執行設置獲取或賦值,如果參數2為空,則為獲取配置配置變量的值的情況;如果參數2不為空,則是為配置變量設置值的情況

if (is_string($name)) {//給配置變量設置值或者獲取配置變量的值

if (!strpos($name, '.')) {//如果配置變量名中沒有".",則執行下面代碼

$name = strtolower($name);//將配置變量名轉化為小寫

if (is_null($value))

return isset($_config[$name]) ? $_config[$name] : null;//獲取配置變量值的情況,返回配置變量的值

$_config[$name] = $value;//給配置變量設置值的情況

return;

}

// 二維數組設置和獲取支持

$name = explode('.', $name);

$name[0] = strtolower($name[0]);

if (is_null($value))

return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : null;//獲取值的情況

$_config[$name[0]][$name[1]] = $value;//賦值的情況

return;

}

// 批量設置

if (is_array($name)){//批量設置值

//array_change_key_case():將數組中的所有鍵名改為全小寫或大寫,默認會改為全小寫,注意:只是將鍵名改為小寫哦

$_config = array_merge($_config, array_change_key_case($name));

if(!empty($value)) {// 保存配置值

cache('c_'.$value,$_config);

}

return;

}

return null; // 避免非法參數

}

/**

* 處理標簽擴展,如: 項目開始標簽的調用,tag('app_begin');

* @param string $tag 標簽名稱

* @param mixed $params 傳入參數

* @return mixed

*/

function tag($tag, &$params=NULL) {

// 系統或框架標簽擴展

// C('extends', include THINK_PATH.'Conf/tags.php');//這個文件很重要

$extends = C('extends.' . $tag);//$_config['extends'][app_init]

// 應用或項目標簽擴展

// C('tags', include CONF_PATH.'tags.php'); //項目中也可以編寫自己的tags.php文件

$tags = C('tags.' . $tag);//$_config['tags'][app_init]

if (!empty($tags)) {//如果$tags不為空

if(empty($tags['_overlay']) && !empty($extends)) { // 合并擴展

$tags = array_unique(array_merge($extends,$tags));

}elseif(isset($tags['_overlay'])){ // 通過設置 '_overlay'=>1 覆蓋系統標簽

unset($tags['_overlay']);

}

}elseif(!empty($extends)) {

$tags = $extends;

}

if($tags) {

if(APP_DEBUG) {

G($tag.'Start');

trace('[ '.$tag.' ] --START--','','INFO');

}

// 執行擴展

foreach ($tags as $key=>$name) {

if(!is_int($key)) { // 指定行為類的完整路徑 用于模式擴展

$name = $key;

}

//創建行為類對象,如:$class=$name.'Behavior';$behavior = new $class();//創建一個行為類對象

B($name, $params);//執行某個行為,參數1-行為名稱 參數2-傳入的參數

}

if(APP_DEBUG) { // 記錄行為的執行日志

trace('[ '.$tag.' ] --END-- [ RunTime:'.G($tag.'Start',$tag.'End',6).'s ]','','INFO');

}

}else{ // 未執行任何行為 返回false

return false;

}

}

/**

* 執行某個行為

* @param string $name 行為名稱

* @param Mixed $params 傳人的參數

* @return void

*/

function B($name, &$params=NULL) {

//行為類在Think.class.php文件中的autoload($class)函數中自動加載

$class = $name.'Behavior';//行為類的名稱

G('behaviorStart');

$behavior = new $class();//創建一個行為類對象

$behavior->run($params);//給當前行為類對象傳遞參數

if(APP_DEBUG) { // 記錄行為的執行日志

trace('Run '.$name.' Behavior [ RunTime:'.G('behaviorStart','behaviorEnd',6).'s ]','','INFO');

}

}

注意:行為類、模型類、控制器類 都是在Think.class.php文件中的autoload函數中自動加載的:

/**

* 系統自動加載ThinkPHP類庫

* 并且支持配置自動加載路徑

* @param string $class 對象類名

* @return void

*/

//行為類、模型類、控制器類 都是通過autoload函數自動加載的

public static function autoload($class) {

// 檢查是否存在別名定義

if(alias_import($class)) return ;

//行為類都是通過此函數自動加載的

if(substr($class,-8)=='Behavior') { // 加載行為

if(require_cache(CORE_PATH.'Behavior/'.$class.'.class.php')

|| require_cache(EXTEND_PATH.'Behavior/'.$class.'.class.php')

|| require_cache(LIB_PATH.'Behavior/'.$class.'.class.php')

|| (defined('MODE_NAME') && require_cache(MODE_PATH.ucwords(MODE_NAME).'/Behavior/'.$class.'.class.php'))) {

return ;

}

}elseif(substr($class,-5)=='Model'){ // 加載模型

if((defined('GROUP_NAME') && require_cache(LIB_PATH.'Model/'.GROUP_NAME.'/'.$class.'.class.php'))

|| require_cache(LIB_PATH.'Model/'.$class.'.class.php')

|| require_cache(EXTEND_PATH.'Model/'.$class.'.class.php') ) {

return ;

}

}elseif(substr($class,-6)=='Action'){ // 加載控制器

if((defined('GROUP_NAME') && require_cache(LIB_PATH.'Action/'.GROUP_NAME.'/'.$class.'.class.php'))

|| require_cache(LIB_PATH.'Action/'.$class.'.class.php')

|| require_cache(EXTEND_PATH.'Action/'.$class.'.class.php') ) {

return ;

}

}

// 根據自動加載路徑設置進行嘗試搜索

$paths = explode(',',C('APP_AUTOLOAD_PATH'));

foreach ($paths as $path){

if(import($path.'.'.$class))

// 如果加載類成功則返回

return ;

}

}

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

總結

以上是生活随笔為你收集整理的common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美另类视频在线 | 福利视频在线免费观看 | 99久久夜色精品国产亚洲 | 丰满少妇一区二区三区视频 | 娇妻高潮浓精白浆xxⅹ | 日本视频免费观看 | 羞辱极度绿帽vk | 亚av | 亚洲一区中文字幕 | 欧美一级乱黄 | 小婕子伦流澡到高潮h | 久色亚洲 | 四虎最新网址在线观看 | 91视频国产精品 | 国产精品不卡在线观看 | 男插女视频网站 | 国产欧美日韩精品一区 | 水牛影视av一区二区免费 | 免费看成年人视频 | 久久久久久98 | 日本精品人妻无码免费大全 | 亚洲精品乱码久久久久久蜜桃91 | 蜜桃成熟时李丽珍国语 | 天天干免费视频 | 国产乱女淫av麻豆国产 | 精品无码一区二区三区爱欲 | 特黄一区二区三区 | 欧美日韩在线观看一区 | 狠狠gao| 亚洲国产aⅴ精品一区二区的游戏 | 无码人妻久久一区二区三区不卡 | 亚洲综合图区 | 日韩无码精品一区二区三区 | 琪琪久久 | 91精品婷婷国产综合久久竹菊 | 超碰青青操 | 男女互操视频 | 国产三级高清 | 自拍偷拍导航 | free性护士vidos猛交 | 国产乱子伦精品视频 | 日本在线h | 日本后进式猛烈xx00动态图 | jizzjizz亚洲 | 国产在线综合网 | 在线观看v片 | 一区在线视频 | 欧美日韩免费在线视频 | 都市激情 亚洲 | 天堂中文资源在线观看 | 精品国产乱码久久久久久浪潮 | 久久精品专区 | 国产又粗又长又大视频 | 97影院| 久草视频精品在线 | 日韩在线观看av | 少妇视频在线播放 | 成人精品二区 | 免费在线观看国产精品 | 国产91边播边对白在线 | 亚洲欧美视频在线 | 蜜桃av噜噜一区二区三区小说 | 欧美第二页 | 午夜激情网 | 国产黑丝一区二区 | 国产剧情在线观看 | 亚洲精品无人区 | 窝窝视频在线观看 | 香蕉视频日本 | 色姑娘久 | 欧美日韩免费在线 | 欧美成人vr18sexvr | 中文不卡视频 | 婷婷综合精品 | 四虎成人精品在永久免费 | 麻豆视频在线观看免费网站黄 | 97福利| 国产精品VideoSex性欧美 | 欧美在线另类 | 老司机福利精品 | 免费啪啪网 | 91av片| 顶级嫩模啪啪呻吟不断好爽 | 深夜视频在线免费观看 | 欧美一区二区激情 | 在线观看av黄色 | 国产jzjzjz丝袜老师水多 | 亚洲综合91 | 五月天精品 | 污污网站在线观看视频 | 精品一区二区在线免费观看 | 亚洲自拍在线观看 | 原神淫辱系列同人h | 毛片啪啪啪 | ass日本寡妇pics | 久久橹| 少妇肥臀大白屁股高清 | 99久久久久无码国产精品 | 欧美性高潮 |