==========
Расширенная реализация vlucas/phpdotenv, добавляющая поддержку защищенных PHP-файлов конфигурации (.env.php).
Стандартные .env файлы уязвимы, если веб-сервер настроен неправильно и начинает отдавать их содержимое как plain text.
Этот пакет позволяет использовать файлы с расширением .php и защитной заглушкой в начале:
<?php
die();
?>
DB_HOST=localhost
DB_USER=rootЕсли такой файл будет запрошен напрямую через браузер, сервер исполнит PHP-код, встретит die() и завершит выполнение, не показав переменные окружения. Если же сервер отдает файл как текст (ошибка конфигурации), вы все равно защищены, так как данные находятся после закрывающего тега ?> (хотя настройка веб-сервера на запрет доступа к таким файлам остается лучшей практикой).
- Полная совместимость: Сохранен весь публичный API оригинального
vlucas/phpdotenv. Вы можете использовать этот пакет как drop-in replacement. - Умный парсинг: Специальный
PhpFileStoreавтоматически удаляет PHP-теги (<?php ... ?>) перед передачей контента в парсер. - Гибкость: Поддерживает как обычные
.envфайлы, так и новые.env.php.
composer require webmasterskaya/dotenvphpИспользование практически идентично оригинальному пакету. Единственное отличие — вы можете указывать файлы с расширением .php.
Создайте файл .env.php:
<?php
die();
?>
APP_ENV=production # Comments i supported
APP_NAME="My securatable application"
DB_PASSWORD=secret
USER_FIRSTNAME=John
USER_SURNAME=Doe
USER_NAME="${USER_FIRSTNAME} ${USER_SURNAME}"Загрузите его в PHP:
<?php
use Dotenv\Dotenv;
// По умолчанию в директории ищутся .env и .env.php файлы
$dotenv = Dotenv::createImmutable(__DIR__);
$dotenv->load();
echo $_ENV('DB_PASSWORD'); // secret
echo $_SERVER('USER_NAME'); // John DoeТак как этот пакет является расширением vlucas/phpdotenv, вся документация по методам, валидации, иммутабельности и другим функциям доступна в официальном репозитории vlucas/phpdotenv.
Все методы, описанные там, работают здесь точно так же.