Wpis z mikrobloga

@zakopiak: @nieoficjalny_rzecznik: @panDocent: dzieki, tak czułem a pytanie jeszcze mam do Was o zmienne srodowiskowe, jak mam cos powpisywane w .env to te zmienne sa jakies globalne i moge w kazdym pliku w projekcie sie jakos do nich odwolac?

przyklad mam w env

APPNAME=WYKOP

a pozniej w ogole w innym pliku gdzies tam nagle z dupy u gory:

$nazwa = APP
NAME;

( ͠° °
  • Odpowiedz
https://www.php.net/manual/en/function.getenv.php służy do pobierania zmiennych środowiskowych.
Ale żeby PHP załapał te zmienne z tego pliku, to najpierw musi użyć np. https://github.com/vlucas/phpdotenv. Ale zakładam, że jak się uczysz PHP to jeszcze nie znasz composera, którym najpierw instalujesz tą bibliotekę phpdotenv i później ją wrzucasz do autoloadera.

To, że w jakimś innym pliku masz coś napisane, to znaczy, że ktoś tak napisał i tyle. Pewnie chciał coś obejść, bo nie wiedział, jak to zmienić.
  • Odpowiedz
@panDocent: @zakopiak: cos tam rozkminiam dalej i mam teraz tak

w .env:
ENV=dev

w index.php stała:
define('ENV', getenv('ENV'));

pozniej w jakims pliku:
$config['name'] = 'ENV';

i teraz w tej zmiennej $config['name'] mam to string dev czy ENV ? bo dziwi mnie zapis $config['name'] = 'ENV'; jest tak jakby string przypisany a nie zmienna srodowiskowa czy stała
  • Odpowiedz
@rosso_corsa: Wszystko możesz sobie sprawdzić najlepiej używając xdebuga, lub ewentualnie var_dumpem

Jak już wyżej wspominaliśmy, do załadowania .env potrzebujesz czegoś co to zrobi, zakładam, że masz i rzeczy z tego pliku lądują już w PHP jako zmienne środowiskowe.

define('ENV', getenv('ENV'));
getenv pobiera wartość tej zmiennej środowiskowej, a define tworzy stałą globalną o tej nazwie i przypisuje jej cokolwiek ten getenv zwróci.

$config['name'] = 'ENV';
To jest przypisanie zwykłego stringa, a
  • Odpowiedz
no wlasnie tak jest zapisane w stringu dlatego sie zdziwiłem. ogolnie zapis do stałej wyglada taak:

define('BASE', empty(getenv('ENV')) ? 'ENV' : getenv('ENV') );

czyli jakby stała ENV jest jako przstarzała? jeszcze nie czaje tego doczytam, chodzilo mi glownie ze
$config['name'] = 'ENV';
przypisuje mi stringa a nie stałą na co mogłoby wyglądać
  • Odpowiedz