Что такое phpdotenv?
phpdotenv — это популярная PHP-библиотека для управления конфигурацией приложений через переменные окружения. Она позволяет загружать настройки из файла .env в массив $_ENV и глобальные переменные getenv(), что упрощает разделение конфигурации и кода. Создана по мотивам Ruby-библиотеки dotenv и широко используется в современных PHP-фреймворках (Laravel, Symfony).
Зачем нужна phpdotenv?
При разработке приложений часто требуется хранить чувствительные данные (пароли к БД, API-ключи) отдельно от кода. phpdotenv решает эту проблему: вы создаёте .env-файл, который не попадает в репозиторий (добавляется в .gitignore), а библиотека загружает его в окружение. Это обеспечивает безопасность, гибкость (разные настройки для dev/staging/prod) и соответствие принципу 12-factor app.
Установка phpdotenv
Установите библиотеку через Composer:
composer require vlucas/phpdotenvУбедитесь, что у вас установлен Composer и PHP версии 7.1 или выше.
Основные функции
- Загрузка .env-файла — парсинг ключ=значение с поддержкой комментариев (#) и пустых строк.
- Обязательные переменные — проверка наличия необходимых ключей с помощью
required(). - Типизация — автоматическое преобразование строк в типы (boolean, integer, null).
- Безопасность — экранирование спецсимволов, поддержка кавычек.
- Иммутабельность — защита от перезаписи существующих переменных окружения.
Пример кода на PHP
require 'vendor/autoload.php';
use Dotenv\Dotenv;
// Загружаем .env из корневой директории
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
// Теперь переменные доступны через getenv()
$dbHost = getenv('DB_HOST');
$dbName = getenv('DB_NAME');
// Или через $_ENV
echo $_ENV['APP_ENV']; // 'local'
// Проверка обязательных переменных
$dotenv->required(['DB_HOST', 'DB_NAME']);
// Пример .env-файла:
// DB_HOST=localhost
// DB_NAME=test
// APP_ENV=localКогда использовать phpdotenv
Библиотека идеальна для:
- Веб-приложений на PHP (Laravel, Symfony, Slim).
- CLI-скриптов и микросервисов.
- Проектов, где требуется быстрая смена конфигурации без правки кода.
- Командной разработки — каждый разработчик может иметь свой
.env. - CI/CD пайплайнов — переменные задаются через окружение сервера, а не через файл.
Важно: Никогда не коммитьте .env-файл в репозиторий. Создайте .env.example с шаблоном для коллег.