[置顶] ThinkPHP框架总结之配置及使用

ThinkPHP框架总结之配置及使用:

 

TP框架提供了灵活的全局参数变量配置功能,使用高效的返回php数组定义,支持惯例、公共、模块、调试及动态参数配置功能。下面会结合例子来介绍最常用的默认PHP数组配置方式(xml/json/ini/yaml方式不进行介绍),如何读取数组配置及动态配置,对于拓展配置实际用的不多,这里不赘述,感兴趣的读者可自行查资料,。

 

在了解相关的配置前,我们有必要先了解下,在ThinkPHP中配置文件的加载顺序。一般的加载顺序是:惯例配置-》应用配置-》模块配置,中间未考虑可选的模式配置、调试配置以及状态配置。注意:因为后面的配置会覆盖前面的同名配置,所以配置的生效顺序是从右往左哦。

惯例配置:

惯例配置文件位于TP框架库中,位置是ThinkPHP/Conf/convention.php,里面配置了针对大多应用的基础配置。

应用配置:

应用配置文件位于Project/Common/Conf/config.php(针对上一篇项目而定的位置,下同),也就是调用加载所有模块之前首先加载的全局通用文件。

模块配置:

模块配置文件的位置Project/应用模块/Conf/config.php,例如:Project/Admin/Conf/config.php。一般一个应用包含多个模块,但至少有一个模块,简单理解为运行到模块,即为加载该文件了。

 

PHP数组配置:

<?php

return array (

     /* 图片上传路径配置 */

     'IMG_SAVE_URI' => 'http://192.168.10.123/images/',

   /*模块划分 */

     'MODULE_ALLOW_LIST' => array (

               'Admin'=>'后台',

               'Mobile'=>'移动',

               'Wxapp'=>'微信',

               'Website'=>'官网'

     ) // 允许的运行的模块

)

;

上面的配置是在Project/Mobile模块下的Conf/config.php文件,也就是上面的模块配置了,下面会读取该配置参数的值。注意:配置参数不区分大小写,因为最后都会转为小写,建议统一为大写格式。

 

如何读取配置:

在TP框架中,支持使用C函数来读取各种配置参数,不论是系统预定配置还是自定义配置,同时也可以指定参数配置的默认值等。

读取的接口:

// 用户头像保存接口(一维数组)

     public function headerSave() {

          // ...

          // 读取配置的图片保存路径(一维数组)

          $header_uri= C('IMG_SAVE_URI');

          echo $header_uri;

          // ...

     }

返回的值:

// 允许运行的模块接口(二维数组)

     public function allowModules() {

          header("Content-Type:text/html;charset=utf-8");

          // ...

          // 读取允许运行的模块(二维数组)

          $allowModule= C('MODULE_ALLOW_LIST.Mobile');

          echo $allowModule;

          // ...

     }

返回的值:

[置顶] ThinkPHP框架总结之配置及使用_第1张图片

 

如果配置未设定值,那么返回为null,另外,读取的时候也可以为其指定默认值(这里不赘述)。

 

动态配置参数:

上面的参数配置都是预定义配置,这里同样使用C函数在程序运行中动态的修改配置参数的值,这种情况也比较常见,例如:有时我们需要动态修改缓存数据的缓存时间,那么怎么实现哪?很简单,具体入下(包含一、二维数组修改):

// 动态修改配置接口

     public function dynamicSet() {

          header("Content-Type:text/html;charset=utf-8");

         

          // 一维数组

          // 默认的数据缓存时间

          $defaultTime= C('DATA_CACHE_TIME');

          echo $defaultTime.'</br>';

          // 修改的数据缓存时间

          C('DATA_CACHE_TIME',60);

          $updateTime= C('DATA_CACHE_TIME');

          echo $updateTime.'</br>';

         

          // 二维数组

          // 默认的允许运行模块

          $defaultModule= C('MODULE_ALLOW_LIST.Mobile');

          echo $defaultModule.'</br>';

          // 修改的允许运行模块

          C('MODULE_ALLOW_LIST.Mobile','移动App');

          $updateModule= C('MODULE_ALLOW_LIST.Mobile');

          echo $updateModule;

     }

返回的结果:

 

 

技术讨论群:489451956(新)

 

你可能感兴趣的:(框架,thinkphp)