Chciałbym naśladować sposób, w jaki aplikacja Laravel ma zmienne środowiskowe ustawione za pomocą pliku .env
.W jaki sposób Laravel analizuje plik .env?
APP_ENV=local
DB_DATABASE=fruits
DB_USERNAME=fruituser
DB_PASSWORD=secretpassword
Więc może następnie ustawić domyślne fallbacks w config.php
takie jak ten:
return [
'env' => env('APP_ENV', 'production'),
];
Jednak mam problemy kopanie poprzez kod ramowej znaleźć kawałek gdzie analizuje tekst w .env
i zamienia ją do właściwych zmiennych PHP.
znalazłem definicję funkcji env()
pomocnika w vendor\laravel\framework\src\Illuminate\Foundation\helpers.php
:
function env($key, $default = null)
{
$value = getenv($key);
if ($value === false) {
return value($default);
}
...
... ale który wywołuje kolejną globalną funkcję pomocnika nazwie getenv()
i że jest gdzie szlak idzie zimno.
Podejrzewam, że możemy być na poziomie Symfony, ale niestety nie mogę znaleźć definicji getenv()
, a twoja pomoc i wskazówki byłyby bardzo mile widziane.
getenv jest funkcja PHP, to będzie być udokumentowane na stronie PHP –
https://github.com/vlucas/phpdotenv –
Mając na uwadze powyższe, laravel używa vlucas/dotenv do parsowania plików .env –