Deployer 7 发行版使用 dotenv 变量
Deployer 7 distribution use dotenv variables
问题
在 Symfony 6 应用程序中使用部署程序要求我从 deployer/deployer
更改为 deployer/dist
(7.0.0-rc.3
),缺点是我无法从我的 .env
不再像以前那样了。
情况
使用 deployer/deployer
我有以下示例在部署脚本中使用 dotenv 变量:
<?php
namespace Deployer;
use Symfony\Component\Dotenv\Dotenv;
require 'recipe/common.php';
require 'contrib/discord.php';
$dotenv = new Dotenv();
$dotenv->loadEnv(__DIR__ . '/.env');
set('application', $_ENV['APP_NAME']);
set('discord_channel', $_ENV['DISCORD_DEPLOY_CHANNEL']);
set('discord_token', $_ENV['DISCORD_DEPLOY_TOKEN']);
但是 deployer/dist
我不能再这样做了,给出错误信息:
Class "Symfony\Component\Dotenv\Dotenv" not found
有人可以先解释一下为什么它不再工作了吗?其次,从我的 .env
文件加载环境变量的可能解决方案(或替代方案)是什么?
dist
版本在phar包中包含自己的依赖(和it does not depend on dotenv
),而deployer
版本使用你项目自己的依赖。由于您的项目很可能使用 dotenv
组件,因此您可以在部署脚本中使用它。
但是由于您使用的是 symfony 6,因此无法安装 deployer 7,因为它依赖于 symfony 5,导致与您的项目发生冲突。
这有点麻烦,但您可以将包分叉以添加 dotenv
依赖项并使用提供的 bin/build
脚本构建您自己的 phar,然后手动将其复制到您的项目中。
问题
在 Symfony 6 应用程序中使用部署程序要求我从 deployer/deployer
更改为 deployer/dist
(7.0.0-rc.3
),缺点是我无法从我的 .env
不再像以前那样了。
情况
使用 deployer/deployer
我有以下示例在部署脚本中使用 dotenv 变量:
<?php
namespace Deployer;
use Symfony\Component\Dotenv\Dotenv;
require 'recipe/common.php';
require 'contrib/discord.php';
$dotenv = new Dotenv();
$dotenv->loadEnv(__DIR__ . '/.env');
set('application', $_ENV['APP_NAME']);
set('discord_channel', $_ENV['DISCORD_DEPLOY_CHANNEL']);
set('discord_token', $_ENV['DISCORD_DEPLOY_TOKEN']);
但是 deployer/dist
我不能再这样做了,给出错误信息:
Class "Symfony\Component\Dotenv\Dotenv" not found
有人可以先解释一下为什么它不再工作了吗?其次,从我的 .env
文件加载环境变量的可能解决方案(或替代方案)是什么?
dist
版本在phar包中包含自己的依赖(和it does not depend on dotenv
),而deployer
版本使用你项目自己的依赖。由于您的项目很可能使用 dotenv
组件,因此您可以在部署脚本中使用它。
但是由于您使用的是 symfony 6,因此无法安装 deployer 7,因为它依赖于 symfony 5,导致与您的项目发生冲突。
这有点麻烦,但您可以将包分叉以添加 dotenv
依赖项并使用提供的 bin/build
脚本构建您自己的 phar,然后手动将其复制到您的项目中。