Есть ли способ прочитать файл .env, а затем условно потребовать пакеты в composer.json?

#php #composer-php

#php #composer-php

Вопрос:

Мой usecase:

Я хочу установить auth0/login пакет, только если .env указано AUTH_PROVIDER=auth0 иное, нам не нужно устанавливать auth0login .

Возможно ли это? если это возможно, каков правильный способ?

Ответ №1:

Единственный способ «условно» устанавливать пакеты — это require-dev ключ.

Но, похоже, это не auth0/login пакет разработчика для вас, так что это не сработает.

Все, что указано в качестве требования, composer.json установлено, и наличие его любым другим способом может сбить с толку пользователей проекта.

Если бы было возможно то, что вы предлагаете, изменение .env потребовало бы переустановки проекта… это не то, чего можно было бы ожидать: .env содержит конфигурацию во время выполнения и composer.json сохраняет конфигурацию во время сборки.

Извините, но то, что вы хотите сделать, невозможно, и это плохая идея.

Если пакет используется в некоторых конфигурациях во время выполнения, это жесткое требование, и его следует установить. Если в некоторых конфигурациях или сценариях не используется, все в порядке.