Hur man skapar en miljövariabelfil som Laravel och Symphony’s .env

Har du någonsin tänkt på hur du kan distribuera dina webbapplikationer utan att behöva ställa in dina databaskonfigurationer med serverns autentiseringsuppgifter innan du distribuerar dem, och utan att behöva gå in på servern för att redigera autentiseringsuppgifterna för att följa med?

Om du är bekant med PHP-frameworks som Laravel och Symphony, så borde du känna till deras .env-filer. Det är där du ställer in alla dina lokala variabler, från databasreferenser till referenser för e-posttjänster och vad du än tycker ska vara speciellt för miljön (Local/Development, Staging och Production).

Dessa två PHP-funktioner är hemligheten bakom Larvels .env-fil. Som namnet antyder används den ena för att ställa in miljövariablerna putenv() medan den andra används för att hämta variablerna getenv().

Du kan läsa mer om dem nedan:

http://php.net/manual/en/function.getenv.php
http://php.net/manual/en/function.putenv.php

HUR JAG IMPLEMENTERAR DEM I MITT PROJEKTPROJEKT?

Det är väldigt enkelt att implementera dem, och som du gissade, ja! Det kommer att involvera slingor.

Skapa en env.example.php-fil

Jag vet att du kommer att undra, vad är det med .example? Detta är den fil som du kommer att kopiera och klistra in som env.php. Kom ihåg att det är en fil som ska vara speciell för sin miljö, därför kommer du att lägga till din env.php i .gitignore. Vi återkommer till det senare.

Förresten, lägg in utdraget nedan i din fil.

Du kan lägga till fler variabler i den.

Skapa en autoload.php-fil

Avhängigt av hur du autoloadar filer i ditt projekt, kompositör/den gammaldags include. Om du använder composer kan du byta namn på den här filen till något annat, den kan faktiskt heta vad som helst.

Hur som helst kommer vi att hålla oss till autoload.php.

Sätt in nedanstående utdrag i din fil.

Säkerställ att den ligger i samma katalog som din env.example.php-fil

Bemärk att i vår autoload.php inkluderar vi env.php och inte env.example.php?
Det beror på att en env.php kommer att återskapas från env.example.php enligt den miljö som din app distribueras i, och på grund av dess särdrag bör du lägga till den i din .gitignore.

När du är klar med att ställa in det här, som jag nämnde tidigare, beroende på hur du autoloadar filer i din katalog, autoloadar du din autoload.php-fil. För icke-composer projekt, inkludera bara denna fil i ditt projekt generellt via include "autoload.php";

Voilà! du kan komma åt dina miljövariabler via env('VARIABLE_NAME')

Lämna ett svar

Din e-postadress kommer inte publiceras.