Создание и настройка нового проекта на Laravel 6.x
Создание нового проекта на Laravel может происходить двумя способами: через composer, либо через установщик Laravel, который также придется установить через composer. Начнем со второго способа. Инсталлер Laravel устанавливается через composer с помощью команды:
composer global require laravel/installer
Далее чтобы создать проект Laravel можно просто выполнить команду
laravel new project_name
При этом в текущем каталоге будет создан каталог проекта с указанным именем. И в этом каталоге будет создано все необходимое для старта проекта.
При создании проекта через инсталлер есть одна особенность - устанавливается последняя версия фреймворка, и изменить это не получится (по крайней мере поиск по интернету рабочего решения не дал). Это создает некоторые проблемы при работе, так как новые версии фреймворка требует повышения версии PHP, а это не всегда возможно.
Обойти эту проблему возможно через установку проекта через composer. При этом способе установки возможно указать используемую версию фреймворка в параметрах команды. Команда для создания проекта через composer следующая:
composer create-project --prefer-dist laravel/laravel project_name "6.*"
После установки проекта с помощью одного из вышеописанных способов, можно запустить и посмотреть результат в браузере. Для этого нужно зайти в каталог проекта и в нем выполнить команду:
php artisan serve
При этом запустится локальный веб-сервер проекта и будет ждать запросов к нему через порт 8000. Вводим в браузере адрес http://localhost:8000 и любуемся результатом:
Небольшое примечание. Для того чтобы выполнилась эта команда, у вас должен быть установлен php, и путь к нему должен быть прописан в системной переменной PATH (для ОС Windows). Также если у вас уже занят порт 8000, сервер не сможет на нем запуститься и будет пробовать следующие номера - 8001, 8002. Все это будет написано в консоли при запуске.
Настраиваем соединение с базой данных
В файле .env, который находится в корне проекта, есть блок параметров, относящийся к настройкам соединения с базой данных.
Первый параметр - DB_CONNECTION. В нем указывается с каким типом базы данных мы будем соединяться. Возможные варианты прописаны в файле config/database.php и изначально могут быть следующими: mysql, sqlite, pgsql, sqlsrv.
Следующие параметры - DB_HOST и DB_PORT. В них указывается соответственно IP-адрес сервера и порт, где находится база данных. Обычно база данных и веб сервер находятся на одном сервере, так что указывается локальный адрес 127.0.0.1. И для БД MySQL указывается порт 3306. Эти значения уже будут изначально прописаны в файле после установки Laravel.
Далее следуют параметры - DB_DATABASE, DB_USERNAME и DB_PASSWORD. Это соответственно имя базы данных, имя пользователя и пароль пользователя.
Также, если это необходимо, для работы с базой данных в файле config/database.php следует прописать нужные настройки. Например для базы данных MySQL я прописываю движок 'engine' => 'InnoDB', кодировку 'charset' => 'utf8' и параметры сравнения 'collation' => 'utf8_general_ci'.
После настройки соединения можно запустить миграции с помощью команды:
php artisan migrate
При этом в базе данных создастся таблица миграций migrations, а также таблицы users, password_resets и fialed_jobs.
Если при миграции возникли какие-то ошибки, то после их исправления базу данных можно очистить и накатить миграции заново командой:
php artisan migrate:fresh
Добавляем аутентификацию
Теперь, когда у нас есть настроенная база данных с таблицей пользователей, можно подключить встроенную аутентификацию пользователя. Для этого достаточно выполнить несколько команд:
composer require laravel/ui="1.*" php artisan ui vue --auth npm install npm run dev
После выполнения этих команд у нас в проекте появятся все необходимые компоненты для регистрации пользователей в системе, и для их аутентификации через указание электронной почты и пароля.
На главной странице появятся ссылки на страницы входа и регистрации в системе:
Теперь можно регистрироваться новым пользователям, входить в систему и выходить из нее. Но у нас еще не настроена отсылка электронных писем. Это нужно, например, для того, чтобы пользователь мог сбросить свой пароль.
Настраиваем отсылку email
Для настройки отправки почты в файле .env есть блок параметров, начинающихся на "MAIL_".
Первый из них - это MAIL_DRIVER, по-умолчанию установлено значение smtp.
Следующие параметры - это MAIL_HOST и MAIL_PORT. Это имя хоста и порт почтового сервера, который будет отвечать за отправку почты.
Параметры MAIL_USERNAME и MAIL_PASSWORD - имя пользователя и пароль от учетной записи почтового сервера.
В параметре MAIL_ENCRYPTION указывается способ шифрования при пересылке почты.
Следующие два параметра MAIL_FROM_ADDRESS и MAIL_FROM_NAME должны содержать соответственно адрес отправителя и имя отправителя. Имя отправителя по-умолчанию соответствует имени приложения (APP_NAME).
Например, для яндекс почты настройки будут следующими:
MAIL_DRIVER=smtp MAIL_HOST=smtp.yandex.ru MAIL_PORT=587 MAIL_USERNAME=user@site.ru MAIL_PASSWORD=xxxxxxx MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=admin@server.ru MAIL_FROM_NAME="${APP_NAME}"
Для проверки правильности настроек почты можно попробовать отослать письмо. Это легко делается с помощью tinker - специальной среды выполнения, идущей в составе Laravel. Для запуска tinker выполните команду:
php artisan tinker
Далее в этой среде нужно выполнить следующее:
Mail::send('welcome', [], function($message) { $message->to('user@site.ru')->from('admin@server.ru')->subject('Test email'); })
После выполнения этой команды, если все настройки указаны верно, на адрес user@site.ru должно придти электронное письмо с темой "Test email". Для выхода из среды tinker используйте команду exit.
Теперь у пользователей будет возможность сбросить свой пароль в случае, когда он его забыл.
Резюме
В результате вышеперечисленных действий у нас получился готовый к работе проект на Laravel, в котором уже есть регистрация и аутентификация пользователей, подключено и настроено соединение с базой данных, а также настроена отправка электронных писем.
Комментарии (0)