В дистрибутиве 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 (и не зависит от ), в то время как deployerversion использует собственные зависимости вашего проекта. Поскольку ваш проект, скорее всего, использует этот компонент, вы можете использовать его в своем сценарии развертывания.

Но так как вы используете symfony 6, вы не можете установить deployer 7, потому что он зависит от symfony 5, вызывая конфликт с вашим проектом.

Это немного хлопотно, но вы можете разветвить пакет, чтобы добавить dotenvзависимость и создайте свой собственный phar с предоставленным bin/buildscript и скопируйте его вручную в свой проект.

Другие вопросы по тегам