getenv
funkcja
Odczytuje wartość zmiennej środowiskowej. Używana do wczytywania sekretów (kluczy API, haseł DB) z pliku .env zamiast z kodu.
getenv(string $name = "", bool $local_only = false): string|array|false
getenv zwraca wartość zmiennej środowiskowej o podanej nazwie. Jeśli zmienna nie istnieje, zwraca false. Wywołana bez argumentu zwraca tablicę wszystkich dostępnych zmiennych środowiskowych.
Parametr $local_only = true ignoruje zmienne ustawione przez serwer WWW (np. Apache) i zwraca tylko te z lokalnego środowiska — przydatne w specyficznych konfiguracjach serwerowych.
W nowoczesnych aplikacjach PHP sekrety trzyma się w pliku .env, który jest wczytywany przez bibliotekę taką jak vlucas/phpdotenv. Nigdy nie wklejaj haseł ani kluczy API bezpośrednio w kodzie źródłowym.
<?php
declare(strict_types=1);
// Odczyt zmiennej środowiskowej (np. z pliku .env):
$dsn = getenv('DB_DSN'); // np. mysql:host=localhost;dbname=sklep
$dbUser = getenv('DB_USER'); // np. root
$dbPass = getenv('DB_PASSWORD'); // np. tajnehaslo123
if ($dsn === false) {
throw new \RuntimeException('Brak zmiennej środowiskowej DB_DSN');
}
// Odczyt innej zmiennej:
$appEnv = getenv('APP_ENV') ?: 'production'; // domyślnie produkcja
echo "Środowisko: {$appEnv}";
// Sprawdź dostępne zmienne (przydatne przy diagnostyce):
// var_dump(getenv()); // zwraca tablicę wszystkich zmiennych