Download the PHP package enjoys/dotenv without Composer
On this page you can find all versions of the php package enjoys/dotenv. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download enjoys/dotenv
More information about enjoys/dotenv
Files in enjoys/dotenv
Package dotenv
Short Description Registers environment variables from a .env file
License MIT
Informations about the package dotenv
Парсер .env файлов.
Загружаются .env.dist, .env и остальные файлы в зависимости от APP_ENV. Например, если APP_ENV=test, будет попытка загрузить .env.test
Приоритет конфигурационных файлов
- сначала загружается dist файл, но у него приоритет самый низкий.
- потом загружается основной файл (.env), все параметры которые в нём определены - перезапишут dist
- и последний файл - это файл окружения, если он существует. все параметры в нем будут иметь наивысший приоритет, и они перезапишут предыдущие значения. Этот файл не обязателен.
- переменные окружения установленные системно, например через export и т.п. имеют наивысший приоритет, так как они не перезаписываются
Установка
Использование
Формат .env файлов
Дополнительные возможности
Type Casting (приведение типов)
Все значения в .env файле являются строками (string), но иногда было бы хорошо привести значение к соответствующему
типу. Это возможно, установив свойство $castType в true с помощью метода enableCastType().
...или с помощью флага Dotenv::CAST_TYPE_ENV_VALUE
Доступные флаги
Ниже примеры как будут кастоваться переменные
- *bool - return bool(true) or bool(false)
- *true - return bool(true)
- *false - return bool(false)
- *null - return NULL
- int `int 42` return int(42)
- *int8
- *int16
- *float* or double* `float 3,14` return float(3.14), запятые автоматически заменяются на точки
- string - `string int` return string(4) "int"
Важное примечание
НЕ РЕКОМЕНДУЕТСЯ использовать флаг Dotenv::CAST_TYPE_ENV_VALUE или enableCastType().
_Хотя автоматическое приведение типов может быть удобным, его использование напрямую через $_ENV может быть
неочевидным для других разработчиков и усложняет отладку. Значения, приведённые к типам, будут доступны только в рамках
текущего PHP-процесса, где была использована эта библиотека._
Критически важно понимать_, что при использовании функции getenv() (которая часто используется для чтения
переменных окружения) всегда возвращаются строковые значения, даже если тип был приведён на уровне парсера и сохранён
в $_ENV. Это может привести к неожиданным результатам и ошибкам, если код использует смешанный доступ к переменным
через $_ENV и getenv()._
Также эта функция замедляет парсинг переменных, что особенно заметно на больших объёмах данных.
_Для более предсказуемого и согласованного поведения рекомендуется использовать функцию env(). Она
предоставляет те же возможности по приведению типов, но делает это явно в момент обращения к значению. Это делает код
читаемым и предотвращает ошибки, связанные с неявным преобразованием типов и различиями в способах хранения
переменных (в $_ENV, getenv() или $_SERVER)._
Значения переменных по-умолчанию
Если переменная не установлена, можно определить значения по-умолчанию. Есть два варианта как это сделать:
${VAR:-default}- при этом варианте, если переменная не будет установлена, вернется значение после знака:-, переменная при этом также останется не установленной, в противном случае будет возвращено значение переменной.${VAR:=default}- при этом варианте, если переменная не будет установлена, вернется значение после знака:=и установить переменную с этим значением, в противном случае будет возвращено значение переменной.
Внимание! Если переменная не установлена, и не переданы значения по-умолчанию, будет возвращена пустая строка.
Чтобы вызвать ошибку при таком сценарии, можно указать после наименования переменной :?, или :?message. И в случае
если переменная не была установлена, будет выброшено исключение \Enjoys\Dotenv\Exception\InvalidArgumentException
Например:
Доступные флаги
- CLEAR_MEMORY_AFTER_LOAD_ENV - очищает память после установки всех значений в $_ENV, $_SERVER или putenv()
- CAST_TYPE_ENV_VALUE - приводит к типу на основе содержимого (string|bool|int|float|null)
- POPULATE_PUTENV - будут доступны установленные значения помимо $_ENV также из getenv()
- POPULATE_SERVER - будут доступны установленные значения помимо $_ENV также из $_SERVER
Флаги можно комбинировать через |, например Dotenv::CAST_TYPE_ENV_VALUE|Dotenv::POPULATE_PUTENV
Функция env()
Удобная функция для работы с переменными окружения с поддержкой преобразования типов, валидации и гибкой обработки значений в callback функции.
Базовое использование
Преобразование типов
Автоматическое преобразование типов
Функция использует ValueTypeCasting::castType() для автоматического преобразования типов. См. Type Casting (приведение типов)
Специальные префиксы для явного указания типов
Автоматическое преобразование без префиксов
Преобразование значений
Валидация значений
Получение сырых значений (RAW)
Практические примеры
Конфигурация приложения:
Особенности работы
Приоритеты получения значений
Функция проверяет переменные в следующем порядке:
- getenv() - системные переменные окружения
- $_ENV - массив переменных окружения PHP
- Значение по умолчанию

