Файл .env лежить у корені проєкту й зберігає налаштування, специфічні для середовища, та секрети: доступи до БД, API-ключі, APP_KEY, режим APP_ENV. Ідея в тому, що той самий код працює в різних середовищах (локально, staging, продакшен) лише завдяки різним .env.
APP_ENV=local
APP_DEBUG=true
DB_CONNECTION=mysql
DB_PASSWORD=secret
STRIPE_KEY=sk_test_...
Ключові правила:
.envне комітиться в git (він у.gitignore) - кожен розробник і сервер має власний. Натомість комітять.env.exampleяк шаблон без секретів.- Значення зчитуються хелпером
env('KEY', 'default'), але викликатиenv()слід лише у файлахconfig/. - У застосунку звертайтесь через
config('services.stripe.key'), а неenv(...)напряму: післяphp artisan config:cache(оптимізація на проді) викликиenv()поза конфігом повертаютьnull.
Навіщо: секрети не потрапляють у код/репозиторій, а конфігурацію легко змінювати під середовище без редагування коду.