Dotenv
Modul pro práci s proměnnými prostředí - načítání souboru .env a bezpečný přístup k hodnotám.
Petrovo CMS používá balíček vlucas/dotenv obalený jednoduchými helper funkcemi v namespace Petrovo\Dotenv.
Základní použití
use Petrovo\Dotenv;
// Načtení .env souboru (obvykle v bootstrap.php)
Dotenv\init(__DIR__);
// Čtení proměnné
$db_host = Dotenv\env('DATABASE_HOST');
// S výchozí hodnotou
$debug = Dotenv\env('DEBUG', '0');
// Kontrola existence (vyhodí výjimku pokud chybí)
Dotenv\requires('DATABASE_URL');
Funkce
init(string $path): array
Načte a parsuje .env soubor z zadané cesty. Vrací pole všech načtených proměnných.
// Typicky v bootstrap.php
$env = Dotenv\init(__DIR__);
// Proměnné jsou teď dostupné přes env()
env(?string $key = null, ?string $default = null)
Vrátí hodnotu proměnné prostředí. Bez parametru vrací všechny proměnné.
// Konkrétní proměnná
$app_env = Dotenv\env('APP_ENV'); // 'dev' nebo 'prod'
// S výchozí hodnotou
$timeout = Dotenv\env('TIMEOUT', '30');
// Všechny proměnné
$all = Dotenv\env(); // pole všech $_SERVER proměnných
requires(string $key): bool
Vyhodí výjimku UnexpectedValueException pokud proměnná neexistuje. Jinak vrátí true.
// Kontrola povinné proměnné
try {
Dotenv\requires('DATABASE_URL');
Dotenv\requires('APP_KEY');
} catch (UnexpectedValueException $e) {
die("Chybí konfigurační proměnná: " . $e->getMessage());
}
Příklad .env souboru
APP_ENV=dev
APP_KEY=your-secret-key-here
DATABASE_URL=mysql://user:password@localhost/dbname
ALLOWED_IP=127.0.0.1,192.168.1.1
CORS_ORIGINS=http://localhost:3000
Poznámky
- Proměnné se ukládají do
$_SERVER- jsou globálně dostupné - Speciální znaky v heslech musí být URL-encoded v
DATABASE_URL - V
.envsouborů obvykle není commitem do gitu (přidej do.gitignore) - Hesla a API klíče jsou citlivé - hlídej práva přístupu k souboru