thinkphp加载php文件,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.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配置文件将被加载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值