ThinkPHP加载自定义的外部文件和配置文件
我们知道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.phpreturnarray(LOAD_EXT_FILE=>'common');
然后在common.php里写一个方法,比如:
functionT_dump($data){if(!empty($data)){echo'<pre>';var_dump($data);echo'</pre>';}}
在控制器里调用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';}那么控制器里直接调用就会报错:CalltoundefinedfunctionHome\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文件,写一个配置参数returnarray('MONGO_DBNAME'=>'idacker');
然后C调用echoC('MONGO_DBNAME')
输出:idacker3.加载原理,其实自定义函数和配置文件的加载归功于load_ext_file函数,/***加载动态扩展文件*@varstring$path文件路径*@returnvoid*/functionload_ext_file($path){//加载自定义外部文件if($files=C('LOAD_EXT_FILE')){$files=explode(',',$files);foreach($filesas$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($configsas$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配置文件将被加载。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。