Суббота, 21 Декабря 2024, 20:14

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [358]
Статьи об общих понятиях связанных с созданием игр.
Программирование [85]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [151]
Статьи о программах для создания игр, уроки и описания.
Софт [44]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [17]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [169]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [133]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Покупаете ли вы конструкторы игр?
Всего ответов: 11301
Главная » Статьи » Создание игр

Курс: Разработка браузерки на 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 (стабильная ветка которая будет у игроков) - делаю я это в угоду времени ибо курс и так будет достаточно большой, кому надо тот может спросить у гугла как сделать ветки и работать с ними.
* Если вы столкнетесь с таким кодом в консоли:
Код
** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

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)Самое время соединить локальную и гитхаб версию (удаленную) при помощи команд указанных на странице (не беспокойтесь, гитхаб любезно подставит ваши данные в команды):

Как вы видите команды у меня получились такие:
Код
git remote add origin https://github.com/Viger94/gcup.ru_lessons.git

git push -u origin master

по очереди эти две команды. 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 пишем:
Код
$table->string('name', 50)->unique()->comment('имя роли');

В данной строчке, мы в таблицу добавляем текстовую колонку с именем name и макс. длинной 50 символов, а так же оставляем комментарий о назначении этого поля.
Помимо этого, роль нам надо как-то вызывать в коде (а в коде лучше использовать латиницу), поэтому мы добавим поле slug:
Код
$table->string('slug', 50)->unique()->comment('слаг поля');


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); //очищаем переменную
   
  $role = new UserRole();
  $role->name = 'Пользователь';
  $role->slug = 'user';
  $role->save();
  unset($role);

*Если вы просто скопировали мой код (ай-ай-ай), то не забудьте вставить над 3 строкой строчку:
Код
use App\UserRole;[code][/i]

8) теперь нам нужно создать такое же семя для Пользователей, выполним команду:  
[code]php artisan make:seeder UsersTableSeeder

В файле: /database/seeds/DatabaseSeeder.php в 14 строке, убираем первые символы [i]//


Открываем в этой же папке файл: UsersTableSeeder.php и по образу и подобию делаем в 14 строке следующий код:
Код

  $user = new User(); //создаем пустого пользователя
  $user->name = 'Администратор'; //указываем имя
  $user->email = 'admin@lesson.loc'; //указываем почту
  $user->role_slug = 'admin'; //указываем роль
  $user->password = bcrypt('admin'); //указываем пароль функция bcrypt() зашифрует пароль
  $user->save();
  unset($user);
   
  $user = new User();
  $user->name = 'Пользователь';
  $user->email = 'user@lesson.loc';
  $user->role_slug = 'user';
  $user->password = bcrypt('user');
  $user->save();
  unset($user);

*Если вы просто скопировали мой код (ай-ай-ай), то не забудьте вставить над 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


Поздравляем! Вы сделали авторизацию, заложили систему ролей пользователя и залили вторую версию движка вашей игры!

Более подробно вы можете обсудить на ветке форума
Исходные коды и репозиторий на github
Категория: Создание игр | Добавил: Viger (09 Сентября 2019) | Автор: Viger94
Просмотров: 3652 | Комментарии: 1 | Рейтинг: 4.6/8 |
Теги: курс, PhpStorm, git, vuejs, Laravel, окружение, Урок, браузерные игры, Делать игры, Laravel 6, GameDev, Создание игр, PHP 7, MySQL, Node.js, Разработка игр, Composer, обучение
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Курс: Разработка браузерки на Laravel 6 + Vue.js. Глава 1. Продолжение», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 1
+1-
1 Podpolniy   (02 Октября 2019 13:06) [Материал]
Не самый лучший выбор инструментария. А так, для саморазвития и понимания, наверное, пойдет. Главное - развиваться.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Luxe Engine
  • Leadwerks
  • Stencyl
  • PlayCanvas
  • C64Studio
  • J2DS
  • 001 Game Creator
  • PureBasic
  • Genesis 2D
  • Retribution Engine
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг