thinkphp5.0 配置格式

摘要:
ThinkPHP支持多种配置格式,但最终会被解析为PHP数组。您还可以在配置文件中使用二维数组来配置更多信息,例如example://The项目配置文件返回['cache'=˃['type'=˃'file','path'=˃cache_path,'prefix'=˃'','expire'=˃0,];其他配置格式支持json/xml/ini和本机PHP数组之外的其他格式。当存在范围时,仍支持级别2配置。如果使用其他格式的配置文件,则二级配置的定义方法如下:[user]type=1name=thinkphp[db]type=mysqluser=rotpassword=''标准xml文件定义:1thinkphpmysqlrootset方法也支持二级配置,例如:Config::set;

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

PHP数组定义

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

//项目配置文件
return [
    // 默认模块名
    'default_module'        => 'index',
    // 默认控制器名
    'default_controller'    => 'Index',
    // 默认操作名
    'default_action'        => 'index',
    //更多配置参数
    //...
];

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

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

//项目配置文件
return [
    'cache'                 => [
        'type'   => 'File',
        'path'   => CACHE_PATH,
        'prefix' => '',
        'expire' => 0,
    ],
];

其他配置格式支持

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

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

Config::parse(APP_PATH.'config/config.json');

ini格式配置示例:

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

xml格式配置示例:

<config>
<default_module>Index</default_module>
<url_model>2</url_model>
<session_auto_start>1</session_auto_start>
</config>

json格式配置示例:

{
"default_module":"Index",
"url_model":2,
"session_auto_start":True
}

二级配置

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

$config = [
    'user'  =>  ['type'=>1,'name'=>'thinkphp'],
    'db'    =>  ['type'=>'mysql','user'=>'root','password'=>''],
];
// 设置配置参数
Config::set($config);
// 读取二级配置参数
echo Config::get('user.type');
// 或者使用助手函数
echo config('user.type');

系统不支持二级以上的配置参数读取,需要手动分步骤读取。
有作用域的情况下,仍然支持二级配置的操作。

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

[user]
type=1
name=thinkphp
 [db]
type=mysql
user=rot
password=''

标准的xml格式文件定义:

<config>
<user>
<type>1</type>
<name>thinkphp</name>
</user>
<db>
<type>mysql</type>
<user>root</user>
<password></password>
</db>
</config>

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

Config::set([
    'type'      =>  'file',
    'prefix'    =>  'think'
],'cache');

免责声明:文章转载自《thinkphp5.0 配置格式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇生成指定数量的假数据linux 系统中awk命令实现统计每行数据的最大值、最小值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(秒嘀)登录短信验证码开发 Demo

注意:前提你要在秒嘀注册:http://www.miaodiyun.com/doc/demo.html 配置类   package com.miaodiyun.httpApiDemo.common; public class Config {/*** url前半部分*/public static final String BASE_URL = "https:...

老vue项目webpack3升级到webpack5全过程记录(一)

背景 19年新建的vue项目,使用的是webpack3,随着项目的积累,组件的增多导致本地构建,线上打包等操作速度极慢,非常影响开发效率和部署效率,基于此问题,本次对webpack及相关插件进行了优化和升级。本博文分为2篇,第 1 篇 会直接附上可运行的代码(去除了一些业务代码配置),直接粘贴复制即可使用(注意是基于vue2.0项目原配置基础上的修改哦,在...

在linux上通过ssh使用github

原文https://www.jianshu.com/p/599ae69b57c5 访问github有两种方式,第一种通过ssh,第二种通过https。通过ssh的方式需要在开发机上面配置ssh key,并把公钥同步到github。第二种方式则每次提交的时候都要输入github的账号密码。选用第二种方式访问github可以跳过步骤1、2 1、在linux...

jenkins基于Ansible自动发布/回滚/管理

看着似乎用jenkins基于ansible发布spring boot/cloud类的jar包程序,或者tomcat下的war包的需求挺多的,闲来无事,也说说自己做过的jenkins基于ansible的发布方法。 规范与标准 无规矩不成方圆,要做好后期的自动化,标准化是少不了的,下面是我们这边规划的一些标准(非强制,根据自己实际情况调整) 应用名称:{应用...

docker挂载单文件问题

关于docker中文件夹挂载成功 但是单文件挂载却没有生效的问题 因为用vim修改这里会有一个坑 docker -v mount 的机制:-v mount 文件(或文件夹)时,docker 记录的是该文件的 inode,并用 inode 追踪。当用 vim 编辑了文件后,这个文件的 inode 就变了,也就是说这个 default.conf 文件已经不是运...

springboot 加载自定义yml文件

Springboot加载自定义yml文件配置的方法 ConfigurationProperties注解的locations属性在1.5.X以后没有了,不能指定locations来加载yml文件 PropertySource注解不支持yml文件加载,详细见官方文档: Spring Framework有两个类加载YAML文件,YamlPropert...