Вед-дев, Сео, Манимейкинг

Переменные окружения в Laravel 5

При разработке какого-либо веб-приложения мы сталкиваемся с проблемами окружения, например, мы разрабатываем и тестим приложение на локальной виртуальной машине, а затем выкладываем на продакшен сервер с разными паролями, названиями БД и прочее.

В Laravel есть понятие "environment variables" - переменные окружения. Чтобы использовать их необходимо создать файл .env в корне приложения:

APP_ENV=local
DB_NAME=db
DB_USERNAME=db_user
DB_PASSWORD=1234

Вот так выглядит примерное содержимое .env файла. Названия переменных можно применять любые (APP_ENV должно оставаться неизменным). В нашем случае мы создали переменные для локального окружения. Далее, редактируем файл "config/database.php":

'database'  => getenv('DB_NAME'),
'username'  => getenv('DB_USERNAME'),
'password'  => getenv('DB_PASSWORD'),

Как вы видите, теперь мы не хардкодим пароли в файл database.php, а сохраняем их в файле .env

Теперь можно спокойно выкладывать проект в публичный репозиторий Github\BitBucket без раскрытия своих паролей. .env файл не будет пушиться, так как, он по умолчанию находится в .gitignore

Если вы решите склонировать репозиторий, то вам нужно будет создать .env файл со своими данными.

Если же вы не создадите файл .env то ваше окружение по умолчанию будет "production":

// bootstrap/environment.php
$env = $app->detectEnvironment(function()
{
        return getenv('APP_ENV') ?: 'production';
});

Посмотреть текущее окружение можно при помощи команды:

php artisan env



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 9 месяцев 2 недели назад
    Спасибо. С Новым Годом! 
  • Den 10 месяцев 2 недели назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 10 месяцев 2 недели назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 11 месяцев 2 недели назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 11 месяцев 2 недели назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 11 месяцев 2 недели назад
    захожу на mysql через ssh по команде  
  • admin 11 месяцев 2 недели назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 11 месяцев 2 недели назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 12 месяцев 1 день назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 1 месяц назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!