Composer不直接管理.env文件,真正读取和注入环境变量的是vlucas/phpdotenv库;需用Composer安装后,在入口文件开头调用Dotenv::createImmutable()->load()加载,并确保.env在.gitignore中。

Composer 本身不直接管理 .env 文件,它只是用来安装和加载 PHP 包的工具。真正读取和注入环境变量的是 vlucas/phpdotenv 这个库 —— 你需要用 Composer 安装它,再在代码中主动加载它。
在项目根目录运行:
composer require vlucas/phpdotenv安装后,Dotenv\Dotenv 类就可用了,自动注册了自动加载机制。
通常放在 index.php、public/index.php 或框架启动文件最开头(确保早于任何依赖环境变量的代码):
立即学习“PHP免费学习笔记(深入)”;
use Dotenv\Dotenv; $dotenv = Dotenv::createImmutable(__DIR__); $dotenv->load();
说明:`createImmutable()` 表示不允许运行时修改 .env 内容;`__DIR__` 指当前文件所在目录,确保路径指向含 .env 的项目根目录。
.env 不在项目根目录(比如放在 config/ 下),传入对应路径:$dotenv = Dotenv::createImmutable(__DIR__, 'config/.env'); $dotenv->load();
加载成功后,`.env` 中的变量会自动注入到 $_ENV 和 $_SERVER 超全局数组,并可通过 getenv() 读取:
.env 示例:APP_NAME=MyApp DB_HOST=localhost DB_PORT=3306 API_KEY=sk_live_abc123
echo $_ENV['APP_NAME']; // MyApp
echo getenv('DB_HOST'); // localhost
echo $_SERVER['DB_PORT']; // 3306
注意:某些 SAPI(如 Apache + mod_php)可能需额外配置才能让 getenv() 生效;用 $_ENV 更稳妥,前提是 variables_order 包含 E(默认通常包含)。
.env 文件必须加到 .gitignore,禁止提交到版本库.env(更安全、更快),仅开发/测试阶段用 phpdotenv
if (file_exists(__DIR__.'/.env')) {
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
}
基本上就这些 —— Composer 只负责“请人来”,真正干活的是 phpdotenv,关键就是装对、载早、用对位置。
以上就是如何使用Composer管理PHP项目中的.env环境变量文件?(vlucas/phpdotenv)的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号