分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ThinkPHP 5.0 配置

发布时间:2023-09-06 02:04责任编辑:傅花花关键词:PHP配置

ThinkPHP 5.0 配置

目录

<!--系统默认的配置文件目录就是应用目录(APP_PATH),也就是默认的application下面,并分为应用配置(整个应用有效)和模块配置(仅针对该模块有效)。-->├─application ????????应用目录│ ?├─config.php ??????应用配置文件│ ?├─database.php ????数据库配置文件│ ?├─route.php ???????路由配置文件│ ?├─index ???????????index模块配置文件目录│ ?│ ?├─config.php ???index模块配置文件│ ?│ ?└─database.php ?index模块数据库配置文件<!--如果不希望配置文件放到应用目录下面,可以在入口文件中定义独立的配置目录,添加CONF_PATH常量定义即可,如下:-->// 定义配置文件目录和应用目录同级define(‘CONF_PATH‘, __DIR__.‘/../config/‘);// 扩展配置目录<!--5.0.1开始增加了扩展配置目录的概念,在应用配置目录或者模块配置目录下面增加extra子目录,下面的配置文件都会自动加载,无需任何配置。--><!--如果你定义了CONF_PATH常量为config目录为例,扩展配置目录如下:-->├─application ????????应用目录├─config ?????????????配置目录│ ?├─config.php ??????应用配置文件│ ?├─database.php ????数据库配置文件│ ?├─route.php ???????路由配置文件│ ?├─extra ???????????应用扩展配置目录│ ?├─index ???????????index模块配置文件目录│ ?│ ?├─extra ????????index模块扩展配置目录│ ?│ ?├─config.php ???index模块配置文件│ ?│ ?└─database.php ?index模块数据库配置文件<!--扩展配置文件的文件名(不含后缀)就是配置参数名,并且会和应用配置文件中的参数进行合并。-->

配置格式

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

// 数组 项目配置文件return [ ???// 默认模块名 ???‘default_module‘ ???????=> ‘index‘, ???// 默认控制器名 ???‘default_controller‘ ???=> ‘Index‘, ???// 默认操作名 ???‘default_action‘ ???????=> ‘index‘, ???//更多配置参数 ???//...];// 二维数组 项目配置文件return [ ???‘cache‘ ????????????????=> [ ???????‘type‘ ??=> ‘File‘, ???????‘path‘ ??=> CACHE_PATH, ???????‘prefix‘ => ‘‘, ???????‘expire‘ => 0, ???],];

其他配置格式支持

默认方式为PHP数组方式定义配置文件,你可以在入口文件定义CONF_EXT常量来更改为其它的配置类型:

// 更改配置格式为ini格式
define(‘CONF_EXT‘, ‘.ini‘);

<!--ini格式配置示例:-->default_module=Index ;默认模块default_controller=index ;默认控制器default_action=index ;默认操作<!--xml格式配置示例:--><config><default_module>Index</default_module><default_controller>index</default_controller><default_action>index</default_action></config><!--json格式配置示例:-->{"default_module":"Index","default_controller":"index","default_action":"index"}

二级配置

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

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

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


配置加载

  1. 加载顺序:在ThinkPHP中,一般来说应用的配置文件是自动加载的,加载的顺序是:
惯例配置-》应用配置-》扩展配置-》场景配置-》模块配置-》动态配置
  1. 惯例配置:惯例重于配置是系统遵循的一个重要思想,框架内置有一个惯例配置文件(位于thinkphp/convention.php),按照大多数的使用对常用参数进行了默认配置。所以,对于应用的配置文件,往往只需要配置和惯例配置不同的或者新增的配置参数,如果你完全采用默认配置,甚至可以不需要定义任何配置文件
  2. 应用配置:应用配置文件是应用初始化的时候首先加载的公共配置文件,默认位于application/config.php。
  3. 扩展配置:扩展配置文件是由extra_config_list配置参数定义的额外的配置文件,默认会加载database和validate两个扩展配置文件。
  4. 场景配置:不同的业务场景使用指定的配置文件,场景配置文件和应用配置文件config.php是一样的定义。
  5. 模块配置:每个模块会自动加载自己的配置文件(位于application/当前模块名/config.php)。模块还可以支持独立的状态配置文件,命名规范为:application/当前模块名/应用状态.php。
  6. 动态配置:
Config::set(‘配置参数‘,‘配置值‘);// 或者使用助手函数config(‘配置参数‘,‘配置值‘);// 批量设置Config::set([ ???‘配置参数1‘=>‘配置值‘, ???‘配置参数2‘=>‘配置值‘]);// 或者使用助手函数config([ ???‘配置参数1‘=>‘配置值‘, ???‘配置参数2‘=>‘配置值‘]);

读取配置

  1. echo Config::get(‘配置参数1‘);
  2. echo config(‘配置参数1‘);
  3. dump(Config::get()); || dump(config());
  4. Config::has(‘配置参数2‘); || config(‘?配置参数2‘);
  5. echo Config::get(‘配置参数.二级参数‘);
    echo config(‘配置参数.二级参数‘);

独立配置文件

配置文件支持分离(也称为扩展配置),只需要在公共配置文件配置extra_config_list参数(V5.0.1版本已经废除该写法)。

例如,不使用独立配置文件的话,数据库配置信息应该是在config.php中配置如下:/* 数据库设置 */‘database‘ ?????????????=> [ ???// 数据库类型 ???‘type‘ ???????=> ‘mysql‘, ???// 服务器地址 ???‘hostname‘ ???=> ‘127.0.0.1‘, ???// 数据库名 ???‘database‘ ???=> ‘thinkphp‘, ???// 数据库用户名 ???‘username‘ ???=> ‘root‘, ???// 数据库密码 ???‘password‘ ???=> ‘‘, ???// 数据库连接端口 ???‘hostport‘ ???=> ‘‘, ???// 数据库连接参数 ???‘params‘ ?????=> [], ???// 数据库编码默认采用utf8 ???‘charset‘ ????=> ‘utf8‘, ???// 数据库表前缀 ???‘prefix‘ ?????=> ‘‘, ???// 数据库调试模式 ???‘debug‘ ??????=> false,],如果需要使用独立配置文件的话,则首先在config.php中添加配置:‘extra_config_list‘ ????=> [‘database‘],定义之后,数据库配置就可以独立使用database.php文件,配置内容如下:/* 数据库设置 */return [ ???// 数据库类型 ???‘type‘ ???????=> ‘mysql‘, ???// 服务器地址 ???‘hostname‘ ???=> ‘127.0.0.1‘, ???// 数据库名 ???‘database‘ ???=> ‘thinkphp‘, ???// 数据库用户名 ???‘username‘ ???=> ‘root‘, ???// 数据库密码 ???‘password‘ ???=> ‘‘, ???// 数据库连接端口 ???‘hostport‘ ???=> ‘‘, ???// 数据库连接参数 ???‘params‘ ?????=> [], ???// 数据库编码默认采用utf8 ???‘charset‘ ????=> ‘utf8‘, ???// 数据库表前缀 ???‘prefix‘ ?????=> ‘‘, ???// 数据库调试模式 ???‘debug‘ ??????=> false,],如果配置了extra_config_list参数,并同时在config.php和database.php文件中都配置的话,则database.php文件的配置会覆盖config.php中的设置。独立配置文件的参数获取都是二维配置方式,例如,要获取database独立配置文件的type参数,应该是:Config::get(‘database.type‘);要获取完整的独立配置文件的参数,则使用:Config::get(‘database‘);

环境变量

环境变量配置,在此框架中.env的用法与laravel的环境变量配置相同ThinkPHP5.0支持使用环境变量配置。在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式,例如:app_debug = ?trueapp_trace = ?true如果你的部署环境单独配置了环境变量,那么请删除.env配置文件,避免冲突。环境变量配置的参数会全部转换为大写,值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。ThinkPHP5.0默认的环境变量前缀是PHP_,也可以通过改变ENV_PREFIX常量来重新设置。注意,环境变量不支持数组参数,如果需要使用数组参数可以,使用下划线分割定义配置参数名:database_username = ?rootdatabase_password = ?123456或者使用[database]username = ?rootpassword = ?123456获取环境变量的值可以使用下面的两种方式获取:Env::get(‘database.username‘);Env::get(‘database.password‘);// 同时下面的方式也可以获取Env::get(‘database_username‘);Env::get(‘database_password‘);可以支持默认值,例如:// 获取环境变量 如果不存在则使用默认值rootEnv::get(‘database.username‘,‘root‘);可以直接在应用配置中使用环境变量,例如:return [ ???‘hostname‘ ?=> ?Env::get(‘hostname‘,‘127.0.0.1‘),];环境变量中设置的app_debug和app_trace参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。

ThinkPHP 5.0 配置

原文地址:https://www.cnblogs.com/maomojun/p/9330714.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved