Зачем нужны файлы env и env.example в Laravel?

Я новичок в Laravel и хочу простое объяснение файлов .env и .env.example, зачем они нам нужны и разницы между ними.

Я знаю, что .env используется, например, для указания соединения с базой данных приложения, но я хотел бы понять это глубже.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
0
16 485
7

Ответы 7

Файл .env содержит различные настройки, одна строка - одна пара КЛЮЧ = ЗНАЧЕНИЕ. А затем в коде вашего проекта Laravel вы можете получить эти переменные среды с помощью функции env («KEY»).

Правило состоит в том, что файл .env не фиксируется в репозитории, поэтому это действительно удобно, потому что тогда люди в вашей команде могут изменять свои переменные локально, не фиксируя их в репозитории.

Теперь файл .env.example, напротив, включен в репозиторий - он используется в качестве файла примера, чтобы вы знали, какие пары KEY = VALUE вам нужны для вашего проекта. Чаще всего его используют для копирования в файл .env и последующего изменения значений.

Вы также можете прочитать об этом в официальной документации Laravel.

Файл .env.example - это просто пример файла .env. Он не используется приложением. Он используется в качестве основы для редактирования и переименования.

Файл .env содержит константы, относящиеся к данному приложению в этих средах. Это означает, например, что если я хочу развернуть свое приложение в нескольких местах с одним и тем же кодом, мне просто нужно будет изменить некоторые настройки в этом файле для запуска в каждой среде, и мы все настроены, никаких изменений кода не требуется.

Эти настройки могут быть настройками подключения к базе данных, но их можно использовать и для других вещей, таких как APP_KEY, который должен отличаться для каждого приложения и использовать многие мои функции.

Будьте осторожны, этот файл .env не должен никуда делиться, поскольку он содержит личную информацию об этом конкретном развертывании.

Подробнее читайте здесь: https://laravel.com/docs/5.6/configuration#environment-configuration

Файл .env, как следует из его названия, является локальным, куда вы помещаете все настройки вашей среды, такие как учетные данные базы данных, драйверы кеша и т. д. Все, что касается сервера, на котором работает проект, и может иметь разные значения для разных серверов, настраиваются здесь.

Например, ваша локальная среда разработки имеет другие учетные данные базы данных, чем производственная среда. Также среда вашего коллеги-разработчика отличается от вашей. Таким образом, у каждого есть .env с разной информацией.

И из-за этого этот файл не может быть версирован, поэтому .env.example - это файл, в котором есть все настройки констант, которые есть в .env, но без значений, и только этот файл версируется. .env.example работает как руководство для создания файла .env с необходимой информацией, которая необходима для запуска приложения.

Поскольку вы работаете с Laravel, вы можете найти больше информации здесь: конфигурация среды

В файле .env хранятся переменные конфигурации для вашего приложения, а .env.example - это просто пример того, что может быть в файле .env! Для начала вы можете легко переименовать .env.example в .env.

Что такое переменные конфигурации? От Приложение с двенадцатью факторами

An app’s config is everything that is likely to vary between deploys (staging, production, developer environments, etc). This includes:

  • Resource handles to the database, Memcached, and other backing services
  • Credentials to external services such as Amazon S3 or Twitter
  • Per-deploy values such as the canonical hostname for the deploy

В Laravel файл .env также содержит ключ вашего приложения, который используется для шифрования в вашем приложении. По этой причине, а также потому, что вы, вероятно, будете хранить в этом файле другие закрытые ключи, убедитесь, что вы не передаете .env в систему управления версиями и не делитесь им публично!

Я рекомендую вам прочитать ссылку выше, чтобы объяснить, почему вы должны отделить конфигурацию от своего приложения, а для информации, относящейся к Laravel, вы можете посмотреть здесь

Начиная с версии Laravel 5.0 в вашей основной папке должен быть файл .env, который содержит различные настройки, одна строка - одна пара KEY = VALUE. А затем в коде вашего проекта Laravel вы можете получить эти переменные среды с помощью функции env(‘KEY’)..

Правило состоит в том, что файл .env не фиксируется в репозитории, поэтому это действительно удобно, потому что тогда люди в вашей команде могут изменять свои переменные локально, не фиксируя их в репозитории.

Теперь файл .env.example, напротив, включен в репозиторий - он используется в качестве примера файла, чтобы вы знали, какие пары KEY = VALUE вам нужны для вашего проекта. Чаще всего его используют для копирования в файл .env и последующего изменения значений.

Ваш файл .env не должен быть привязан к системе контроля версий вашего приложения, поскольку каждому разработчику / серверу, использующему ваше приложение, может потребоваться другая конфигурация среды. Кроме того, это будет угрозой безопасности в случае, если злоумышленник получит доступ к вашему репозиторию системы управления версиями, поскольку любые конфиденциальные учетные данные будут раскрыты.

Если вы разрабатываете с командой, вы можете продолжить включение файла .env.example в свое приложение. Помещая значения-заполнители в пример файла конфигурации, другие разработчики в вашей команде могут четко видеть, какие переменные среды необходимы для запуска вашего приложения. Вы также можете создать файл .env.testing. Этот файл заменит файл .env при запуске тестов PHPUnit или выполнении команд Artisan с --env=testing option..

.env просто используется для хранения всех конфиденциальных файлов, таких как ключ API пароля, база данных и т. д., в качестве переменных среды, которые будут использоваться в вашем коде позже, эти конфиденциальные файлы не включены в базу кода и не будут там, когда они будут отправлены в git . .env.example Это файл, который сообщает другому программисту, что должно быть в этом коде, когда ваш код клонируется или используется другим пользователем.

Пример .env API_KEY = "hwhhwhshs6585gahwhgwuwjwusuhs"

.env.example API_KEY = "ВАШ КЛЮЧ API ИДЕТ ЗДЕСЬ"

.env или переменные среды - это файлы, в которых хранится некоторая конфиденциальная информация, например ключ API. Они видны вам только на вашем ПК / в локальной системе. Ни кому другому, если вы отправите свой проект на GitHub или другую платформу.

Другие вопросы по теме