이 글에서는 thinkPHP의 구성 읽기 및 C 방법을 주로 소개하고, thinkPHP 구성 파일의 기능, 위치, 그룹화 및 읽기 방법을 예제 형식으로 분석합니다. 필요한 친구들이 참고할 수 있습니다
이 글에서는 예제를 설명합니다. C 메소드를 사용한 thinkPHP 구성 읽기에서. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
1. 프로젝트 공개 구성
Conf/config.php
내용은 다음과 같습니다
<?php /** *项目公共配置 *@package *@author **/ return array( 'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay', 'APP_AUTOLOAD_PATH' => '@.ORG', 'OUTPUT_ENCODE' => true, //页面压缩输出 'PAGE_NUM' => 15, /*Cookie配置*/ 'COOKIE_PATH' => '/', // Cookie路径 'COOKIE_PREFIX' => '', // Cookie前缀 避免冲突 /*定义模版标签*/ 'TMPL_L_DELIM' =>'{sh:', //模板引擎普通标签开始标记 'TMPL_R_DELIM' =>'}', //模板引擎普通标签结束标记 'TMPL_CACHE_ON' => false, //关闭模板缓存 'DEFAULT_GROUP' => 'Home', //默认访问分组,设置默认入口 'APP_GROUP_LIST' => 'Agent,Home,System,User,Store,Wap,Mall,Opener', // 项目分组设定,多个组之间用逗号分隔,例如'Home,Admin' 'PUBLIC_RESOURSE' => './Public/', 'URL_404_REDIRECT' => './Tpl/404.html', ); ?>
'LOAD_EXT_CONFIG' => 'db,info,email, safe,upfile,cache,route,app,alipay,sms,platform,store,pay'는 로드된 추가 구성을 결정하며 C() 메서드를 통해 읽을 수 있으며 전역적으로 유효합니다.
2. 모듈 그룹화가 활성화된 경우 각 그룹에 대해 별도로 구성 파일을 정의할 수 있습니다. 그룹 구성 파일은
프로젝트 구성 디렉터리/그룹 이름/config.php
'APP_GROUP_LIST' => 'Home,Admin', //项目分组设定 'DEFAULT_GROUP' => 'Home', //默认分组
에 있습니다. 지금 정의 Home과 Admin의 두 그룹을 사용하여 다음과 같이 그룹 구성 파일을 정의할 수 있습니다.
Conf/Home/config.php Conf/Admin/config.php
각 그룹의 구성 파일은 현재 그룹에서만 유효합니다. 그룹 구성의 정의 형식은 다음과 같습니다. 프로젝트 구성과 동일합니다.
참고: 그룹 이름은 대소문자를 구분하며 정의된 그룹 이름과 일치해야 합니다.
3. 구성 읽기
구성 파일을 정의한 후 시스템에서 제공하는 C 방법을 사용하면 됩니다(이상하다고 느끼면 Config 단어를 사용하면 기억하는데 도움이 됩니다). 구성
C('参数名称')//获取已经设置的参数值
예를 들어 C('APP_STATUS')는 시스템 디버그 모드의 설정 값을 읽을 수 있습니다. 마찬가지로 구성 매개변수는 대소문자를 구분하지 않으므로 C('app_status')는 동일하지만 메소드의 사양은 대문자를 사용하는 것이 좋습니다.
APP_STATUS가 아직 설정되지 않은 경우 NULL을 반환합니다.
C 방법은 2차원 구성을 읽는 데에도 사용할 수 있습니다.
C('USER_CONFIG.USER_TYPE')//获取用户配置中的用户类型设置
C 방법은 전역 구성과 현재 모듈의 구성을 읽습니다.
매개변수가 없으면 유효한 모든 구성을 읽습니다.
동일한 구성 이름이 존재할 경우 이전 값을 덮어쓰게 됩니다.
예:
'HTML_CACHE_TIME' => 60, //静态缓存有效期(秒) 'HTML_CACHE_TIME' => 80,
최종 결과는 80입니다.
로딩 순서는 LOAD_EXT_CONFIG
'LOAD_EXT_CONFIG' => 'db,info,email,safe,upfile,cache,route,app,alipay,sms,platform,store,pay'
매개변수를 기반으로 합니다. 예를 들어 info에 HTML_CACHE_TIME 매개변수가 60이지만 다른 구성에는 없으면 이 매개변수는 60으로 읽혀집니다.
DB에 HTML_CACHE_TIME 50도 있으면 값은 여전히 60입니다. 정보는 나중에 읽기 때문에 db의 HTML_CACHE_TIME을 덮어씁니다.
첨부된 것은 C 메소드 소스 코드입니다
/** * 获取和设置配置参数 支持批量定义 * @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)) { $_config = array_merge($_config, array_change_key_case($array)); } return $_config; } // 优先执行设置获取或赋值 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)){ $_config = array_merge($_config, array_change_key_case($name)); if(!empty($value)) {// 保存配置值 cache('c_'.$value,$_config); } return; } return null; // 避免非法参数 }
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 웹사이트!
관련 추천:
위 내용은 thinkPHP에서 구성 읽기 및 C 메서드 구문 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!