Имея богатый опыт работы с языками программирования, при использовании PHP я зачастую не нахожу уже привычных и подходящих средств, которые применял и применяю в других языках. Одним из таких случаев, является установка переменных окружения, в частности во время разработки. В NodeJS существует библиотека dotenv , ко...

Управление переменными среды в PHP

Имея богатый опыт работы с языками программирования, при использовании PHP я зачастую не нахожу уже привычных и подходящих средств, которые применял и применяю в других языках. Одним из таких случаев, является установка переменных окружения, в частности во время разработки. В NodeJS существует библиотека dotenv, которая отлично справляется со своими обязанностями. Но и PHP, конечно, не остался в стороне – в нем тоже есть похожая библиотека, называемая phpdotenv.

Управление переменными среды

Основная идея, которая стоит за механизмом управления переменными среды, заключается в том, что чтение переменных, требующихся для настройки окружения в PHP, происходит из локального текстового файла, а не из реальных переменных среды. Это облегчает настройку, так как для каждого проекта создается отдельный файл конфигурации, и нет необходимости заново экспортировать переменные среды. Дополнительное преимущество заключается в том, что при написании кода, который будут использовать другие разработчики, файлы конфигурации (.env ) обеспечивают простой и ясный список значений, для конфигурирования проекта.

Файл конфигурации .env

Обычно используются два файла:

  1. .env – это файл, откуда будут браться необходимые настройки. Обязательно добавьте имя файла в .gitignore, если пользуетесь системой контроля версий, чтобы при сохранении проекта в репозитории не сохранились бы какие-либо секретные настройки, вроде паролей, ключей авторизации и так далее.
  2. .env-example – этот файл содержит просто ключи, а не значения. Благодаря этому можно просто скопировав файл, добавить необходимые значения в требуемые ключи.

Примерное содержимое .env файла.

API_KEY=abc123
 API_SECRET=abcdef0123456789

Значения в файле .env есть, теперь пора настроить PHP для работы с ним.

PHPdotenv

Для начала добавляем пакет phpdotenv в наш проект, используя Composer.

composer require vlucas/phpdotenv

Далее, например, в файле index.php можете добавить (сразу за "vendor/autoload.php"):

$dotenv = new Dotenv\Dotenv(__DIR__);
 $dotenv->load();

После этого все переменные будут доступны, там, где их можно ожидать в PHP – в суперглобальном массиве $_ENV.

Использовать переменные среды в разработке так же просто, как использовать файлы конфигурации, но это больше похоже на то, как мы обычно настраиваем приложения в производственной среде. Переменные среды - это очень простой способ передачи контекста приложению - отсюда и название! Они буквально сообщают приложению о среде, в которой оно работает.

Надеюсь, вы найдете использование библиотеки phpdotenv полезным для собственных приложений.