查看: 3763|回复: 0

[PHP学习] thinkPHP5.0框架配置格式、加载解析与读取方法

发表于 2018-2-7 08:00:03

本文实例讲述了thinkPHP5.0框架配置格式、加载解析与读取方法。分享给大家供大家参考,具体如下:

ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。

PHP数组定义

返回PHP数组的方式是默认的配置定义格式,例如:

  1. //项目配置文件
  2. return [
  3. // 默认模块名
  4. 'default_module' => 'index',
  5. // 默认控制器名
  6. 'default_controller' => 'Index',
  7. // 默认操作名
  8. 'default_action' => 'index',
  9. //更多配置参数
  10. //...
  11. ];
复制代码

配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。

还可以在配置文件中可以使用二维数组来配置更多的信息,例如:

  1. //项目配置文件
  2. return [
  3. 'cache' => [
  4. 'type' => 'File',
  5. 'path' => CACHE_PATH,
  6. 'prefix' => '',
  7. 'expire' => 0,
  8. ],
  9. ];
复制代码

其他配置格式支持

除了使用原生PHP数组之外,还可以使用json/xml/ini等其他格式支持(通过驱动的方式扩展)。

例如,我们可以使用下面的方式读取json配置文件:

  1. Config::parse(APP_PATH.'config/config.json');
复制代码

ini格式配置示例:

DEFAULT_MODULE=Index ;默认模块
URL_MODEL=2 ;URL模式
SESSION_AUTO_START=on ;是否开启session

xml格式配置示例:

  1. <config>
  2. <default_module>Index</default_module>
  3. <url_model>2</url_model>
  4. <session_auto_start>1</session_auto_start>
  5. </config>
复制代码

json格式配置示例:

  1. {
  2. "default_module":"Index",
  3. "url_model":2,
  4. "session_auto_start":True
  5. }
复制代码

二级配置

配置参数支持二级,例如,下面是一个二级配置的设置和读取示例:

  1. $config = [
  2. 'user' => ['type'=>1,'name'=>'thinkphp'],
  3. 'db' => ['type'=>'mysql','user'=>'root','password'=>''],
  4. ];
  5. // 设置配置参数
  6. Config::set($config);
  7. // 读取二级配置参数
  8. echo Config::get('user.type');
  9. // 或者使用助手函数
  10. echo config('user.type');
复制代码

系统不支持二级以上的配置参数读取,需要手动分步骤读取。

有作用域的情况下,仍然支持二级配置的操作。

如果采用其他格式的配置文件的话,二级配置定义方式如下(以ini和xml为例):

  1. [user]
  2. type=1
  3. name=thinkphp
  4. [db]
  5. type=mysql
  6. user=rot
  7. password=''
复制代码

标准的xml格式文件定义:

  1. <config>
  2. <user>
  3. <type>1</type>
  4. <name>thinkphp</name>
  5. </user>
  6. <db>
  7. <type>mysql</type>
  8. <user>root</user>
  9. <password></password>
  10. </db>
  11. </config>
复制代码

set方法也支持二级配置,例如:

  1. Config::set([
  2. 'type' => 'file',
  3. 'prefix' => 'think'
  4. ],'cache');
复制代码

读取配置参数

设置完配置参数后,就可以使用get方法读取配置了,例如:

  1. echo Config::get('配置参数1');
复制代码

系统为get方法定义了一个助手config,以上可以简化为:

  1. echo config('配置参数1');
复制代码

读取所有的配置参数:

  1. dump(Config::get());
  2. // 或者 dump(config());
复制代码

或者你需要判断是否存在某个设置参数:

  1. Config::has('配置参数2');
复制代码

如果需要读取二级配置,可以使用:

  1. echo Config::get('配置参数.二级参数');
复制代码

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》、《smarty模板入门基础教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • thinkphp中常用的系统常量和系统变量
  • ThinkPHP中的系统常量和预定义常量集合
  • ThinkPHP模板替换与系统常量及应用实例教程
  • ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
  • ThinkPHP中URL路径访问与模块控制器之间的关系
  • ThinkPHP中公共函数路径和配置项路径的映射分析
  • thinkphp常见路径用法分析
  • thinkphp表单上传文件并将文件路径保存到数据库中
  • ThinkPHP+jquery实现“加载更多”功能代码
  • thinkPHP5.0框架自动加载机制分析
  • thinkphp5 加载静态资源路径与常量的方法


回复

使用道具 举报