Обработка переменных в зависимости от среды в библиотеке composer - PullRequest
0 голосов
/ 11 июля 2020

Контекст:

Я разрабатываю пакет composer из type:library. Пакет является оболочкой для API.

Я использую Guzzle для выполнения запроса API к URL-адресу.

public function callMethodA() {
    $client = new GuzzleHttp\Client();
    $res    = $client->request( 'GET', 'https://api.mydomain.com', [
        'getDetails' => [ 'methodA', 'parameter1' ]
    ] );
}

Мое требование:

Когда пакет устанавливается моими пользователями в их проекте, я хочу, чтобы код вызывал рабочий URL - https://api.mydomain.com.

Когда я занимаюсь разработкой пакета на моем локальном компьютере, я хочу, чтобы код вызывал мой локальный URL - http://api.mydomain.lcl

Один из способов сделать это:

Один из альтернатив - я определяю константы и комментирую константу разработки и не комментирую другую константу, прежде чем Я передаю код.

define('API_URL', 'http://api.mydomain.lcl');
//define('API_URL', 'http://api.mydomain.com'); DON'T FORGET TO UNCOMMENT THIS LINE AND COMMENT ABOVE LINE.

public function callMethodA() {
    $client = new GuzzleHttp\Client();
    $res    = $client->request( 'GET', API_URL, [
        'getDetails' => [ 'methodA', 'parameter1' ]
    ] );
}

Эта альтернатива будет работать, но является рискованной.

Вопросы:

  1. Как лучше обрабатывать переменные на основе среды разработки composer (мой локальный компьютер) и среды развертывания composer (пакет в моем пользовательском проекте).

  2. Если dotenv - это способ go, как мне выпустить файл env в среде развертывания как мой .env w может быть gitignored.

Что-то для объяснения моей настройки: Разработка пакетов

...