ThinkPHP6使用.env配置数据库配置文件database.php的使用
发表于:2023-01-09 12:46:32浏览:4570次
通过ThinkPHP6官方的使用手册了解到,TP6提供了测试环境使用的.env文件。在有.env(可以通过example.env修改)文件的时候框架会优先读取.env文件作为数据库的配置,默认读取[DATABASE]。
场景一:
在不设置.env文件时,默认读取database.php配置的第一个配置。
//数据库连接配置信息
'connections' => [
'mysgl' =>[
//数据库类型
'type' => env('database.type','mysql'),
// 服务器地址
'hostname' => env('database.hostname','127 .0 .0 .1'),
// 数据库名
'database' = => env('database.database','test'),
正确开启MYSQL和写好配置后,通过实例化模型我们能够发现模型类能够被正确实例化。
场景二
当我们数据库存在多个配置的时候,则需要指定连接参数,不然就会默认读取第一个配置。此时我们将第一个配置的连接修改为错误,第二个配置修改成正确的配置信息。

如果是一下的配置文件
此时就会默认连接到第一个配置mysql,除非此时我们的模型就要指定连接配置mysql_2,
模型类应该这样设置才能被正确实例化,这就是多库连接配置:
<?php
namespace app\model;
use think\Model;
class User extends Model
{
protected $connection = 'mysql_2';
}
场景三.env在测试环境中的使用,通过database.php配合.env文件,可以实现在开发环境和测试环境中配置的快速切换。
举个例子:如果mysql_2的
开发环境地址:119.120.60.72
本地环境地址:127.0.0.1
那么.env文件如下设置:
[MYSQL_2]
TYPE = mysql
HOSTNAME = 127.0.0.1
DATABASE = test
USERNAME = root
PASSWORD = root
HOSTPORT = 3306
CHARSET = utf8
DEBUG = true
database.php如下设置:
'mysql_2'=>[
数据库类型
'type' => env('mysql_2.type','mysql'),
// 服务器地址
'hostname' => env('mysql_2.hostname','119.120.60.72'),
// 数据库名
'database' => env('mysql_2.database','tp6'),
// 用户名
'username' => env('mysql_2.username','tp6'),
就可以实现,在本地测试环境下存在.env文件时,读取的是.env中的配置,实现快速切换。
如果需要修改env文件的加载路径,可以修改该文件:vendor\topthink\framework\src\think\App.php
的loadEnv函数
推荐文章
- 分享十个免费优质音频素材网站
- Thinkphp6在Windows下使用Phpstudy工具升级或全局安装composer
- TinyMCE是一个轻量、简洁、功能强大的富文本编辑器
- 最新PHP 7.4.32, PHP8.0.24 & PHP8.1.11三个分支发布了新版本
- 开源OA办公系统 — 勾股OA 4.96.16发布,企业办公的卓越选择
- 阿里云ECS云服务器CentOS7云盘在线扩容操作
- 勾股系列系统:项目任务协作管理系统 —— 勾股 DEV 3.8.31 发布
- GitHub 开源了多款字体,支持自定义字重、宽度和倾斜度
- PHP判断网站的访问来源是否是蜘蛛
- 主流“OpenClaw养虾”产品全解析:腾讯、字节、阿里、百度、小米、智谱、Kimi,哪只“虾”最适合你?

