Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extended PHP dotenv

==========

Расширенная реализация 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

Создайте файл .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.

Все методы, описанные там, работают здесь точно так же.

Лицензия

BSD 3-Clause License.

About

Extended `vlucas/phpdotenv` to loads environment variables from `.env.php` to `getenv()`, `$_ENV` and `$_SERVER` automagically.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages