Как читать файлы .env в PHP: методы доступа к переменным среды

Чтобы читать файлы.env в PHP, вы можете использовать различные методы. Вот несколько вариантов:

  1. Использование библиотеки Dotenv. Библиотека Dotenv — популярный выбор для чтения файлов.env в PHP. Сначала вам необходимо установить библиотеку с помощью Composer, выполнив следующую команду:

    composer require vlucas/phpdotenv

    После установки вы можете создать экземпляр класса Dotenv и загрузить файл.env следующим образом:

    require 'vendor/autoload.php';
    $dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
    $dotenv->load();

    После загрузки файла.env вы можете получить доступ к переменным среды с помощью функции getenv(), например:

    $apiKey = getenv('API_KEY');
  2. Разбор файла.env вручную. Если вы предпочитаете более ручной подход, вы можете проанализировать файл.env самостоятельно. Это включает в себя чтение файла построчно и извлечение пар ключ-значение. Вот пример:

    $envFile = __DIR__ . '/.env';
    $envData = file_get_contents($envFile);
    $lines = explode("\n", $envData);
    foreach ($lines as $line) {
       $parts = explode('=', $line);
       if (count($parts) === 2) {
           $key = trim($parts[0]);
           $value = trim($parts[1]);
           putenv("$key=$value");
       }
    }

    После анализа файла вы можете получить доступ к переменным среды с помощью функции getenv(), как упоминалось ранее.

  3. Использование пользовательского класса конфигурации. Другой подход заключается в создании пользовательского класса конфигурации, который считывает файл.env и предоставляет методы для доступа к переменным среды. Вот простой пример:

    class Config
    {
       private static $data;
    
       public static function loadEnv($path)
       {
           $envData = file_get_contents($path);
           $lines = explode("\n", $envData);
           foreach ($lines as $line) {
               $parts = explode('=', $line);
               if (count($parts) === 2) {
                   $key = trim($parts[0]);
                   $value = trim($parts[1]);
                   self::$data[$key] = $value;
               }
           }
       }
    
       public static function get($key, $default = null)
       {
           return self::$data[$key] ?? $default;
       }
    }

    Вы можете загрузить файл.env и получить доступ к переменным среды, используя этот класс:

    Config::loadEnv(__DIR__ . '/.env');
    $apiKey = Config::get('API_KEY');

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