В дистрибутиве Deployer 7 используются переменные dotenv
Проблема
Использование deployer в приложении Symfony 6 потребовало от меня перехода с на (
7.0.0-rc.3
), недостатком которого является то, что я больше не могу загружать переменные среды из себя так, как я это делал раньше.
Ситуация
С участием
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
файл?
1 ответ
The
dist
версия включает в себя свои зависимости в пакете phar (и не зависит от ), в то время как
deployer
version использует собственные зависимости вашего проекта. Поскольку ваш проект, скорее всего, использует этот компонент, вы можете использовать его в своем сценарии развертывания.
Но так как вы используете symfony 6, вы не можете установить deployer 7, потому что он зависит от symfony 5, вызывая конфликт с вашим проектом.
Это немного хлопотно, но вы можете разветвить пакет, чтобы добавить
dotenv
зависимость и создайте свой собственный phar с предоставленным
bin/build
script и скопируйте его вручную в свой проект.