Har du nogensinde tænkt på, hvordan du kan implementere dine webapplikationer uden at skulle indstille dine databasekonfigurationer med serverens legitimationsoplysninger før implementering eller gå ind på din server for at redigere legitimationsoplysningerne, så de følger med?
Hvis du er bekendt med PHP-frameworks som Laravel og Symphony, bør du kende til deres .env-filer. Det er her, du indstiller alle dine lokale variabler lige fra databaseoplysninger til mail-serviceoplysninger og alt det, du mener, der bør være særegent for miljøet (Local/Development, Staging og Production).
Disse to PHP-funktioner er hemmeligheden bag Laravels .env-fil. Som deres navn antyder, bruges den ene til at sætte miljøvariabler putenv(), mens den anden bruges til at hente variablerne getenv().
Du kan læse mere om dem nedenfor:
http://php.net/manual/en/function.getenv.php
http://php.net/manual/en/function.putenv.php
Hvordan implementerer jeg dem i mit projekt?
Det er meget enkelt at implementere dem, og som du gættede, ja! Det vil involvere loops.
OPRETTELSE AF EN ENV.example.php FIL
Jeg ved godt, at du vil undre dig, hvad er det for noget med .example? Dette er den fil, som du skal kopiere og indsætte som env.php. Husk, at det er en fil, der skal være særegent for sit miljø, og derfor skal du tilføje din env.php til .gitignore. Det vender vi tilbage til senere.
Hinden da skal du sætte nedenstående uddrag ind i din fil.
Skab en autoload.php-fil
Afhænger af, hvordan du autoloader filer i dit projekt, composer/den gammeldags include. Hvis du bruger composer, skal du omdøbe denne fil til noget andet, den kan faktisk hedde hvad som helst.
Men af hensyn til denne skrivning holder vi os til autoload.php.
Før nedenstående uddrag ind i din fil.
Bemærk, at vi i vores autoload.php inkluderer env.php og ikke env.example.php?
Det skyldes, at en env.php vil blive genskabt fra env.example.php i henhold til det miljø, din app er implementeret på, og på grund af dens særpræg bør du tilføje den til din .gitignore.
Når du er færdig med at opsætte dette, skal du, som jeg sagde tidligere, afhængigt af hvordan du autoloader filer i din mappe, autoloade din autoload.php-fil. For ikke-composer projekt, skal du bare inkludere denne fil i dit projekt generelt via include "autoload.php";
Voilà! du kan få adgang til dine miljøvariabler via env('VARIABLE_NAME')