Курс: Разработка браузерки на Laravel 6 + Vue.js. Глава 1. Продолжение
Для того что бы залить наш проект в репозиторий необходимо зарегистрироваться на Github или Bitbucket. Думаю описывать полностью регистрацию на сервиса нет смысла, как и объяснять в чем собственно разница - гугл поможет лучше меня. Далее рассказ будет использоваться GitHub.
Заливаем проект в Git
1) После регистрации и входа в аккаунт необходимо нажать Start Project / Create Project 2) В появившемся окне указать адрес проекта и приватный или публичный. Поля расположенные ниже (перечеркнуты на скрине) не заполнять т.к. мы добавляем существующий локальный репозиторий, помните команду git init - вот тогда мы создали репозиторий?
Соответственно после заполнения надо нажать Create repository. Перед вами появится ваш пустой репозиторий.
5) Теперь для системы контроля версии надо указать какие изменения надо зафиксировать (коммитить)/Нам необходимо зайти при помощи консоли в папку с нашим проектом и выполнить команду
Код
git add .
Которая добавит ВСЕ файлы и папки к коммиту После этого необходимо закрепить коммит, т.к. это первый инициализирующий коммит, то назовем его "Init" и выполним команду:
Код
git commit -m "Init"
Этой командой мы фиксируем изменения и даем им названия (в дальнейшем вы увидите как легко и красиво будет наблюдать за изменениями кода по коммитам). Флаг -m указывает что мы заливаем мастер версию (главную), я сознательно не буду в этом курсе разделять ветки на dev (ветка с версией для разработчика) и master (стабильная ветка которая будет у игроков) - делаю я это в угоду времени ибо курс и так будет достаточно большой, кому надо тот может спросить у гугла как сделать ветки и работать с ними. * Если вы столкнетесь с таким кодом в консоли:
to set your account's default identity. Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '%%%%%%')
Вам необходимо следовать подсказкам и выполнить 2 команды настройки git:
Код
git config --global user.email "ваша почта" git config --global user.name "ваше имя или никнейм"
4)Самое время соединить локальную и гитхаб версию (удаленную) при помощи команд указанных на странице (не беспокойтесь, гитхаб любезно подставит ваши данные в команды): Как вы видите команды у меня получились такие:
по очереди эти две команды. 1 - команда связывает локальный и удаленный репозитории, а 2 команда указывает что надо закачать код с локального на удаленный репозиторий.
После ввода этих команд, консоль запросит логин, а потом и пароль от учетной записи Github/Bitbucket
Вот такой ответ, выдаст вам консоль при успешном git push (далее по тексту Пуш)
Самое время проверить наш репозиторий в гитхабе, он должен выглядеть так:
Поздравляю вы успешно залили первую версию своего проекта!
Создание авторизации и пользователей Из преимуществ использования таких движков как Simfony, Yii, Laravel и т.д. Это инструментарий помогающий быстро, легко и красиво делать базовые операции, без возможности оставить дыру в безопасности (конечно это не повод расслабляться, но облегчает жизнь).
1) Перед тем как делать авторизацию и пользователей нам необходимо подключить наш движок к базе данных, для этого нам нужно прописать данные все в .env файле. Не буду сильно заострять внимание на создании пользователя и самой базы данных, предположим у нас все есть. В указанных полях мы вводим:
Код
DB_DATABASE=название базы данных DB_USERNAME=имя пользователя DB_PASSWORD=пароль от пользователя
2) Настало время магии, хотя и в предыдущей версии Laravel создание авторизации было проще и делалось одной командой. Теперь все не сильно сложнее. Для этого нам надо ввести следующий команды в консоли (да, да консоль наш лучший друг)
Код
composer require laravel/ui php artisan ui vue php artisan ui vue --auth npm i npm run dev
Итогом выполнения этой команды, будет появление справа сверху ссылок login и register
3) Но рано радоваться, теперь нам надо настроить миграции (файл который создает необходимы таблицы в базе данных) В игре нам понадобятся разные роли пользователей, для этого нам нужно каждому пользователю указать роль, НО в ходе работы игры и дальнейшего обновления и добавления нам надо делать все максимально гибко. Дело в том что в некоторых уроках я вижу такие поля у пользователя как is_admin, но это накладывает неудобства, а может мы решим сделать админа и спер админа? Поэтому нам стоит сделать такой объект как Роль Пользователя (User Role). Объекты в ООП - это Модели, так давайте и создадим модель роли пользователя командой:
Код
php artisan make:model UserRole -mcr
Флаг m указывает что нам надо создать миграцию, а флаг c - контроллер, флаг r - значит ресурсный контроллер (с наполнением CRUD - Create Read Update Deleat).
4) После выполнения команды, нам необходимо указать какие свойства у модели есть, для этого их надо прописать в миграции, открываем файл: /database/migration/2019_09_09_114522_create_user_roles_table.php (первые цифры указывают дату создания файла)
Миграция делится на две функции up() и down(), дело в том что миграции можно "накатывать" на базу данных и "откатывать", так вот up - это действия при накатывании, а down - при откатывании. Таким образом миграция это аналог git только для базы данных. Далее по курсу я покажу как правильно пользоваться миграции, для введения нового функционала на "живой" игре
Теперь нам нужно задать свойство имя роли, между строчек 17 и 18 пишем:
В данной строчке, мы в таблицу добавляем текстовую колонку с именем name и макс. длинной 50 символов, а так же оставляем комментарий о назначении этого поля. Помимо этого, роль нам надо как-то вызывать в коде (а в коде лучше использовать латиницу), поэтому мы добавим поле slug:
5) Это поле мы будем использовать для связки Пользователя и Роли. Для этого нам надо открыть файл: /database/migration/2014_10_12_000000_create_users_table.php В нем после строки 19 добавляем строчку:
Код
$table->string('role_slug', 50)->default('user')->comment('лаг роли пользователя');
Тут внимательный читатель заметит что мы указываем default - значение поля по умолчанию, т.к. у нас изначально должны быть все пользователи в роли простого пользователя то и слаг мы указываем user.
6) теперь добавим элемент валидации со стороны базы данных, а именно внешний ключ. Возвращаемся в: /database/migration/2019_09_09_114522_create_user_roles_table.php И после строчки 21, пишем код внешнего ключа:
Код
Schema::table('users', function (Blueprint $table) { $table->foreign('role_slug')->references('slug')->on('user_roles'); });
А после строчки 33, добавляем удаление внешнего ключа:
Код
Schema::table('user_roles', function (Blueprint $table) { $table->dropForeign('role_slug'); });
Теперь у нас система не даст создать пользователя без несуществующей роли.
7) Нам надо создать семена (seeds) которые мы будем загружать в базу сразу с "накатыванием" миграции, что бы роли были сразу. Для этого выполняем команду:
Код
php artisan make:seeder UserRolesTableSeeder
И открываем файл по пути: /database/seeds/DatabaseSeeder.php, тут нам надо подключить наш новый файл с названием UserRolesTableSeeder.php в систему, для этого перед строчкой 14 вставляем код:
Код
$this->call(UserRolesTableSeeder::class);
8) После этого в этой же папке открываем файл UserRolesTableSeeder.php и за место 14 строки добавляем код создания роли администратора и пользователя (пока нам этого хватит):
Код
$role = new UserRole(); // создаем пустой объект Роли $role->name = 'Администратор'; //указываем имя $role->slug = 'admin'; //указываем slug $role->save(); //сохраняем unset($role); //очищаем переменную
*Если вы просто скопировали мой код (ай-ай-ай), то не забудьте вставить над 3 строкой строчку:
Код
use App\User;[code][/i]
9) Теперь осталось "накатить" миграцию и семена и можно проверять! Выполняем: [code]composer dump-autoload php artisan migrate:refresh --seed
10) Теперь вы можете зайти по ссылке вашего проекта и нажать на ссылку login [i](зайти по тем данным что вы указывали в семени UsersTableSeeder) или register.
11) Осталось залить все в гит репозиторий!:
Код
git add . git commit -m "Make Auth & Make user Roles" git push origin master
Поздравляем! Вы сделали авторизацию, заложили систему ролей пользователя и залили вторую версию движка вашей игры!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Курс: Разработка браузерки на Laravel 6 + Vue.js. Глава 1. Продолжение», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.