Следует ли использовать Symfony Flex в производственной кодовой базе? - PullRequest
2 голосов
/ 29 мая 2020

Я пишу Dockerfile для моего нового приложения PHP, используя Symfony 5 с Flex.

Одна из команд сборки, которые я запускаю, выглядит следующим образом: RUN composer dump-env prod

Это дает мне ошибку:

 [Symfony\Component\Console\Exception\CommandNotFoundException]  
  Command "dump-env" is not defined.  

Я понимаю, потому что команда dump-env получена из symfony / flex composer зависимость, которая находится в моем разделе require-dev в composer.json.

У меня есть другая инструкция в Dockerfile: RUN composer install --no-dev --no-suggest, и поэтому я получаю эту ошибку - я запустите команду dump-env без установки symfony/flex.

Чтобы исправить это, я могу переместить зависимость symfony/flex из require-dev в раздел require в моем composer.json.

Итак, вопросы:

  • следует ли мне использовать Symfony Flex в производственной кодовой базе?
  • если нет, как я могу запустить команду dump-env для увеличения производительность?
  • если да, то каковы еще причины его использования? влияет ли Flex как-то на производительность приложения?

1 Ответ

0 голосов
/ 22 июля 2020

Это хороший вопрос, потому что «избегать бесполезных пакетов» всегда полезно, чтобы «избежать проблем с совместимостью».

Следует ли мне использовать Symfony Flex в производственной кодовой базе?

В процессе установки вы используете команду, предоставленную flex: dump-env, поэтому вам нужно установить ее в производственной среде. Поэтому я думаю, вам стоит его использовать.

Основная проблема с flex заключается в том, что он может изменять ваш исходный код и env-файлы. Но в процессе установки вы звоните не composer update, а composer install. Таким образом, flex не будет обновлять ваш исходный код, даже если в каком-либо пакете есть новые рецепты. Я предполагаю, что ваш файл env будет обновлен в процессе установки. Так что запустить этот пакет в производство не составит труда. Вы можете заменить его личной командой. Думаю, этот пакет проверен и стабилен. Его используют многие разработчики и сопровождающие. Так что, я думаю, это "защита от ошибок". Будет ли ваша команда более стабильной? Я так не думаю, даже если вы скопируете исходный код, потому что ваш код не всегда будет синхронизироваться c с командой flex.

Flex интегрирован в Symfony. Можно даже сказать, что flex используется для интеграции пакетов по symfony. Таким образом, нет риска несовместимости.

если да, то каковы другие причины его использования? влияет ли Flex как-то на производительность приложения? Flex не влияет на производительность приложения, поскольку он никогда не вызывается. «Никогда» - не лучший термин, он используется только тогда, когда вы вызываете команду dump-env.

Другая причина: symfony -demo и symfony -skeleton - это приложение, которое соответствует рекомендациям Symfony . Команда Symfony решила разрешить гибкость в пакете prod, а не в пакетах dev.

Итак, как сказал Якуми в своем комментарии: «Я не вижу причин избегать этого пакета в производстве». Это верно ! Более того, я вижу много причин использовать его в продакшене.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...