温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ThinkPHP加载自定义的外部文件和配置文件

发布时间:2020-06-24 23:04:11 来源:网络 阅读:2790 作者:小海哥2010 栏目:web开发

我们知道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 '<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';} 那么控制器里直接调用就会报错: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配置文件将被加载。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI