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 ;
}
}
PS:이 사이트 의 포맷/미화/변환 도 구 를 추천 합 니 다.난잡 한 코드 를 정리 하 는 데 도움 이 될 것 입 니 다.앞으로 개발 에 사용 할 수 있 을 것 이 라 고 믿 습 니 다.php 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/phpformat
JavaScript 코드 미화/압축/포맷/암호 화 도구:
http://tools.jb51.net/code/jscompress
온라인 XML 포맷/압축 도구:
http://tools.jb51.net/code/xmlformat
JSON 코드 포맷 미화 도구:
http://tools.jb51.net/code/json
온라인 XML/JSON 상호 변환 도구:
http://tools.jb51.net/code/xmljson
json 코드 온라인 포맷/미화/압축/편집/변환 도구:
http://tools.jb51.net/code/jsoncodeformat
sql 코드 온라인 포맷 미화 도구:
http://tools.jb51.net/code/sqlcodeformat
thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.ThinkpHP 입문 강좌,ThinkPHP 상용 방법 총화,PHP 에서 쿠키 사용법 요약,smarty 템 플 릿 입문 기초 튜 토리 얼과PHP 템 플 릿 기술 총화.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ThinkPHP5 일반 데이터 작업1. 데이터베이스는:thinkphp5, 새 데이터 테이블think_test 2.\application\database.php에서 수정 3.\application\index\model 다음에 새 모델 파일 테스트.ph...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.