2017-09-04 102 views
8

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.

+1

getenv jest funkcja PHP, to będzie być udokumentowane na stronie PHP –

+5

https://github.com/vlucas/phpdotenv –

+0

Mając na uwadze powyższe, laravel używa vlucas/dotenv do parsowania plików .env –

Odpowiedz