我们知道ThinkPHP有公共的函数文件和配置文件,位于Common目录下,默认Common/function.php为公共的函数文 件,Conf/config.php为公共配置文件。好了,那么如何自定义其他的公共函数和配置文件呢。这里不得不讲到两个配置参数 LOAD_EXT_FILE和LOAD_EXT_CONFIG了。
“专业、务实、高效、创新、把客户的事当成自己的事”是我们每一个人一直以来坚持追求的企业文化。 成都创新互联公司是您可以信赖的网站建设服务商、专业的互联网服务提供商! 专注于网站建设、成都网站制作、软件开发、设计服务业务。我们始终坚持以客户需求为导向,结合用户体验与视觉传达,提供有针对性的项目解决方案,提供专业性的建议,创新互联建站将不断地超越自我,追逐市场,引领市场!
1. LOAD_EXT_FILE配置的是自定义的函数文件,比如我想在Common目录下再创建一个common.php文件,那么在config.php里 则可以配置LOAD_EXT_FILE=>'common',这样common.php文件就会自动载入了。
Common/Conf/config.php return array( LOAD_EXT_FILE=>'common');
然后在common.php里写一个方法,比如:
function T_dump($data){ if (!empty($data)){ echo ''; var_dump($data); echo ''; }}
在控制器里调用T_dump(array(1,2,3));输出:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } 如果在Common下另建了另一个文件,test.php,在test.php文件里定义一个test函数 function(){echo 'test';} 那么控制器里直接调用就会报错:Call to undefined function Home\Controller\test() 如果在config.php里加上test,‘LOAD_EXT_FILE’=>'common,test',则正常执行。 2.LOAD_EXT_CONFIG用于自定义配置文件,比如除了config.php你想引入一个额外的配置文件global.php 那么可以在config.php里配置:
LOAD_EXT_CONFIG=>'global' 那么你在Conf目录下创建一个global.php文件,写一个配置参数 return array('MONGO_DBNAME'=>'idacker');
然后C调用echo C('MONGO_DBNAME')
输出:idacker 3.加载原理,其实自定义函数和配置文件的加载归功于load_ext_file函数, /** * 加载动态扩展文件 * @var string $path 文件路径 * @return void */ function load_ext_file($path) { // 加载自定义外部文件 if($files = C('LOAD_EXT_FILE')) { $files = explode(',',$files); foreach ($files as $file){ $file = $path.'Common/'.$file.'.php'; if(is_file($file)) include $file; } } // 加载自定义的动态配置文件 if($configs = C('LOAD_EXT_CONFIG')) { if(is_string($configs)) $configs = explode(',',$configs); foreach ($configs as $key=>$config){ $file = is_file($config)? $config : $path.'Conf/'.$config.CONF_EXT; if(is_file($file)) { is_numeric($key)?C(load_config($file)):C($key,load_config($file)); } } } } 函数需要传入一个$path目录路径,比如我们传入COMMON_PATH, 那么上面两步创建的common.php函数和global.php配置文件将被加载。