tp6通过.env中app_env值(如local、production)决定加载config/{app_env}/下的环境配置,框架自动合并根配置与子目录同名文件;.env须置于根目录且含app_env=xxx和app_debug=true,敏感配置应通过env::get()动态读取。

明确环境标识方式
TP6 不再使用 app_status 这类自定义键控制环境加载,而是依赖 .env 文件中的 APP_ENV 值(如 local、testing、production)来决定加载哪个环境配置。框架会自动读取 .env 并设置环境常量,后续所有配置加载都基于该值。
确保 .env 文件正确放置与生效
根目录下的 .env 必须存在且可读,内容至少包含:
- APP_ENV=local(开发环境)
- APP_DEBUG=true(调试开关)
- 其他如数据库、缓存等配置项(可选)
若修改后不生效,检查是否启用了 opcache 或配置缓存;执行 php think clear:config 清除配置缓存,再重启服务。
按环境加载独立配置文件
在 config/ 目录下,为不同环境新建对应子目录,例如:
- config/local/database.php → 本地数据库配置
- config/production/cache.php → 线上缓存配置
框架会自动合并 config/ 下的通用配置 + config/{APP_ENV}/ 下的同名配置文件(后者覆盖前者)。无需手动调用 Config::load(),也不推荐在代码中硬编码路径。
动态适配敏感配置(如数据库密码)
避免将密码等写死在 PHP 配置文件中。建议统一从 .env 读取:
- 在 config/database.php 中使用 Env::get('DB_PASSWORD')
- 确保 think-env 组件已启用(TP6 默认集成)
- 部署时仅替换 .env,不提交到代码库
这样既保证多环境隔离,又提升安全性与部署灵活性。











