# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Наша цель - разобраться в этом фреймворке и создать рабочий проект - новую видеошколу. Каждый формулист может стать соавтором новой видеошколы. Каждый участник может написать свои строчки для проекта. И каждый из них получит незаменимый опыт по созданию реального рабочего проекта с использованием современных технологий: Yii, PHP, MySQL, Git, Bootstrap, JavaScript, jQuery, AJAX и многое другое. Отчёт отправил: 18688. Arslan Выполнено за 15 мин. [Показать отчёт] Научился: Зарегистрировался в GITHUB. Сложности: Все просто. |
|||||
2 | Web - Первый кирпич сайта |
|
|||
На этом уроке мы настроим минимальные версии модулей на нашем OpenServer для дальнейшей работы. Проверим версии apache, php и MySQL. После чего мы поработаем в консоли, создав необходимый минимум. Далее мы проверим работоспособность нашего мини сайта. Отчёт отправил: 18688. Arslan Выполнено за 40 мин. [Показать отчёт] Научился: Создавать папки на сервере. Узнал о новой команде php -S localhost:31415 -t web Сложности: По невнимательности перепутал пути и не мог запустить стартовую страницу VideoSvhool)))))) |
|||||
3 | Git - Все ходы записываются |
|
|||
На этом уроке мы проинициализиуем локальный git репозиторий в ранее созданной папке нашего проекта school. После чего откроем нашу папку school в PhpStorm для дальнейшей работы уже в более удобной среде разработки. Создадим необходимый файл .gitignore с базовыми правилами и закоммитим наш первый коммит в локальный git репозиторий. Отчёт отправил: 18688. Arslan Выполнено за 48 мин. [Показать отчёт] Научился: Работать в php storm. Open server не принимал команду git init, почитал, посмотрел нужно обновится да ultimate. К следующему все исправлю, а пока вот такой скрин. Сложности: Почему не работает git init)) Обновляюсь.......... |
|||||
4 | Composer - Установка пустоты |
|
|||
На этом уроке мы подключим фреймворк Yii через composer в консоли. Научимся получать токен репозитория git. Далее мы приступим к реализации нашего проекта, для начала модифицируем index.php, чтобы задействовать фреймворк Yii. Так же создадим конфигурационный файл для нашего проекта и передадим его как параметр при создании экземпляра веб-приложения Yii. Отчёт отправил: 18688. Arslan Выполнено за 36 мин. [Показать отчёт] Научился: Установка дополнительных библиотек. Сложности: Пока все получается. Прикладываю второй скиншот (запрос токена) |
|||||
5 | Controller - Точка входа программиста |
|
|||
На этом уроке мы создадим первый контроллер, который является точкой входа для нашего веб-приложения. Познакомимся с полезными ссылками и схемами жизненного цикла нашего веб-приложения. Отчёт отправил: 18688. Arslan Выполнено за 12 мин. [Показать отчёт] Научился: Coзданию контроллера, проверка комментариев. Сложности: Не просто уловить всю суть работы, буду читать дополнительную литературу. |
|||||
6 | Views - Представления начинаются |
2 теста |
|||
На этом уроке мы создадим первое представление для отображения основной странички нашего веб-приложения. Для удобного поиска ошибок мы активируем встроенную в Yii систему отладки. Отчёт отправил: 18688. Arslan Выполнено за 22 мин. [Показать отчёт] Научился: Создавать директории, файлы. Сложности: Пока все понятно |
|||||
7 | Codeception - Пошаговое тестирование |
1 тест |
|||
На этом уроке мы установим систему тестирования веб-приложений и создадим несколько тестов имитации поведения гостя на сайте. Отчёт отправил: 18688. Arslan Выполнено за 45 мин. [Показать отчёт] Научился: Тестированию, но пока мало получается читать ошибки. Так как ранее не был знаком с этим языком. Сложности: Структуру работы тестировщика. |
|||||
8 | Bootstrap - Пусть будет красиво! |
|
|||
На этом уроке мы начнём оформление нашего сайта. Для этого мы установим и подключим набор инструментов bootstrap, включающий в себя HTML/CSS шаблоны оформления и JavaScript расширения. Первое что нам необходимо сделать, это добавить верхнее меню. Отчёт отправил: 18688. Arslan Выполнено за 47 мин. [Показать отчёт] Научился: Добавлять шапку сайта)) Сложности: Исправлять свои ошибки. |
|||||
9 | Menu - Богатый выбор |
|
|||
На прошлом уроке мы создали навигационную панель, на этом уроке мы разместим пункты меню на этой панели. Отчёт отправил: 18688. Arslan Выполнено за 22 мин. [Показать отчёт] Научился: Добавлять меню. Оно круто выглядит!!! Сложности: Держать себя в тонусе |
|||||
10 | Join/login - Полёт Навигатора |
1 тест |
|||
На этом уроке мы вернёмся к ранее созданным тестам, которые провалились при проверке пунктов меню регистрации и авторизации пользователя. На этом уроке мы устраним проблемы, изза которых тесты не могут завершиться успешно. Отчёт отправил: 18688. Arslan Выполнено за 4 час. 59 мин. [Показать отчёт] Научился: Терпению, что то где то сделал не так и пришлось все начать с начало, это только из-за невнимательности. Но ошибку нашел спустя пару часов может кто то и будет смеяться но я забыл поставить пробел вот тут "RewriteRule . index.php". А чем отличается аутентификация от авторизации, попробую пояснить. Аутентификация это когда пользователь проходит режим проверки на каком либо портале, сайте. Идет соединение с сервером и сервер проверяет введенные данные пользователя, затем когда все данные были проверены производится режим авторизации, так сказать регистрация пользователя в сети. Тем самым сервер дает доступ на сайт. Как то так, если не прав, поправьте. Сложности: Найти допущенную ошибку. |
|||||
11 | Debug - Следы на песке |
1 тест |
|||
На этом уроке мы установим систему отладки в Yii для удобства отлавливания ошибок. После чего мы его подключим, прописав необходимые параметры в конфигурационный файл. Так же продемонстрируем как добавлять собственные логи по типу. Посмотрите инструкцию по установке. Отчёт отправил: 18688. Arslan Выполнено за 2 час. 26 мин. [Показать отчёт] Научился: Благодарю всех кто помог разобраться с ошибкой в телеграмм чате. Устанавливать composer require --prefer-dist yiisoft/yii2-debug. Очень мощная штука. Особенно когда она запустилась и показала всю свою работу и что она умеет. Сложности: Разобраться в причине моей ошибки. |
|||||
12 | User - Помещение регистратуры |
|
|||
На этом уроке мы займёмся причёсыванием нашего проекта. Создадим необходимые тесты для обоснования наших действий. Для начала вынесем функции join/login в отдельный контроллер. Так же перенесём сопутствующие файлы видов в одноимённую папку. Отчёт отправил: 18688. Arslan Выполнено за 17 мин. [Показать отчёт] Научился: Очень многому. Сложности: Редактировать ссылки |
|||||
13 | Panel - Красивые анкеты |
|
|||
На этом уроке мы займёмся оформлением страничек регистрации и авторизации при помощи набора инструментов bootstrap. Для этого мы доработаем наши представления join/login.php Отчёт отправил: 18688. Arslan Выполнено за 17 мин. [Показать отчёт] Научился: Как то давно в 2009 смотрел курсы по html и так же подрисовывал все элементы, но тут все круче получается видимо это специфика языка, но удивило меня еще одно его преимущество, что при уменьшении браузера наша TOP панель сама подстраивается под размер формы и получается очень даже ничего. Но в принципе это видно на фото не мог упустить такой момент. Сложности: Все суперски получается я просто восторге. |
|||||
14 | Model - Модели на подиуме |
|
|||
На этом уроке мы поговорим о моделях, представлениях и связях через контроллер. Для этого мы рассмотрим схему, на основе которой будем писать код в последующих уроках. Отчёт отправил: 18688. Arslan Выполнено за 30 мин. [Показать отчёт] Научился: Рисовать бд)) Сложности: Нарисовать)) |
|||||
15 | Tests - Обоснование необходимости |
|
|||
На этом уроке мы займёмся обоснованием дальнеших действий через создание тестов. По аналогии напоминает написание ТЗ для программистов. Далее реализуем тесты поведения пользователей на сайте. Отчёт отправил: 18688. Arslan Выполнено за 23 мин. [Показать отчёт] Научился: Создание тестов и пользователей. Сложности: Пока все понятно |
|||||
16 | Steps - Пошаговая инструкция |
|
|||
На этом уроке мы реализуем сгенерированные на прошлом уроке функции для корректной работы созданных, так же на прошлом уроке, тестов. Отчёт отправил: 18688. Arslan Выполнено за 19 мин. [Показать отчёт] Научился: Создавать поля для регистрации и частично заполнять их. Сложности: Пока все идет как по маслу)) |
|||||
17 | Console - Есть ли жизнь в Консоли? |
|
|||
На этом уроке мы создадим консольное приложение на базе Yii и почитаем описание команд. Подключим vendor\autoload.php для корректной работы php yii.php help migrate. Отчёт отправил: 18688. Arslan Выполнено за 13 мин. [Показать отчёт] Научился: Подключать консоль. Сложности: Все просто. |
|||||
18 | Migration - Архитектура таблицы |
|
|||
На этом уроке мы создадим первую миграцию, опишем в ней структуру таблицы user. Миграции помогают следить за актуальностью схемы базы данных. Отчёт отправил: 18688. Arslan Выполнено за 3 час. 49 мин. [Показать отчёт] Научился: Подключать БД. Сложности: Консоль ругалась на то что нет БД пришлось перечитать не мало форумов чтоб разобраться как прицепить созданную БД в файле console.php. Так как ранее проходил курсы "MySQL ничего лишнего" и вовремя его изучения все фиксировал в конспект было проще понять где и куда создать свою БД чтоб, данная ошибка ушла. Конспекты это круто. |
|||||
19 | DBase - Подключение к Матрице |
2 теста |
|||
На этом уроке мы создадим базу данных в MySQL. После чего создадим конфигурационный файл подключения к БД. Далее запустим миграцию в нашем консольном приложении, для автоматической генерации актуальной структуры таблиц. Отчёт отправил: 18688. Arslan Выполнено за 16 мин. [Показать отчёт] Научился: Удаление и откат Таблицы user. Сложности: Все просто. |
|||||
20 | UserRecord - Очень активная модель |
|
|||
На этом уроке мы создадим модель связи с таблицей пользователей. Добавим в таблицу нашего первого пользователя. После чего перейдём на страничку регистрации и проверим добавился ли пользователь в БД. Так же поизучаем дебаг панель, изучим что происходит при работе с БД. Отчёт отправил: 18688. Arslan Выполнено за 2 час. 41 мин. [Показать отчёт] Научился: Создавать тестПользователя. Сложности: Найти свою ошибку и не одну. Но ДЕБАГ все же делает свое дело с ним проще ее найти. |
|||||
21 | Faker - Тысяча фантазёров! |
1 тест |
|||
На этом уроке мы добавим библиотеку Faker для генерации случайных данных при создании случайных пользователей. Для этого мы вначале установим необходимую библиотеку. После чего используем её в наших тестах. Отчёт отправил: 18688. Arslan Выполнено за 21 мин. [Показать отчёт] Научился: Faker это просто находка, отличный плагин. Сложности: Нужно больше внимательности. |
|||||
22 | UserIdentity - Посторонним В |
|
|||
На этом уроке мы переходим к аутентификации пользователей на нашем сайте. Для этого мы воспользуемся встроенным в Yii интерфейсом IdentityInterface. Немного поэкспериментируем с авторизацией пользователей. Отчёт отправил: 18688. Arslan Выполнено за 50 мин. [Показать отчёт] Научился: Создавать рандомного пользователя. Сложности: Ошибки мой ошибки. |
|||||
23 | Logout - Выход из лабиринта |
|
|||
На этом уроке мы реализуем возможность выхода с сайта. Для этого нам понадобиться доработать представление меню, чтобы оно отличалось при авторизованном/неавторизованном пользователе. Так же реализуем метод выхода пользователя с сайта (Logout). Отчёт отправил: 18688. Arslan Выполнено за 36 мин. [Показать отчёт] Научился: Тестирование, входа и выхода на сайт. Сложности: Уловить суть работы всех классов. После прохождения курса буду доскональна разбирать каждый оператор и для закрепление материала пройду курс заново со своими доработками. |
|||||
24 | UserJoinForm - Модель для формы |
|
|||
На этом уроке мы создадим модель для формы регистрации пользователя. После чего мы добавим её использование в нашем представлении join.php Отчёт отправил: 18688. Arslan Выполнено за 34 мин. [Показать отчёт] Научился: Создание формы, классно все получается. Хочется все быстрее и быстрее двигаться вперед. Но есть план на день по 5 уроков, так что пока придерживаюсь его. Так как еще нужно осваивать полученную информацию, иначе снова возникнут трудности, к тому же мозгам тоже нужен покой. Как говорят тише едешь дальше будешь!!!! Сложности: Трудности не возникают, когда так все подробно поясняют. Прям в рифму получилось))) |
|||||
25 | Rules - Валидация без правил |
1 тест |
|||
На этом уроке мы добавим валидацию полей при регистрации пользователя. Также для полей добавим индивидуальные правила. Отчёт отправил: 18688. Arslan Выполнено за 24 мин. [Показать отчёт] Научился: Подключать инструмент rules() он не может не радовать. Отлично работает. Сложности: Разобраться в обработчике правил, понравился этот инструмент. |
|||||
26 | JoinPost - Вторая сторона модели |
|
|||
На этом уроке мы реализуем вспомогательную функцию, куда перенесём обработку фазы POST запроса нашей формы регистрации пользователей. Так же добавим генерацию начальных данных для первой фазы регистрации пользователей. Отчёт отправил: 18688. Arslan Выполнено за 33 мин. [Показать отчёт] Научился: Перенаправление инструмента faker() на авто-заполнение формы Join. Сложности: Все понятно. |
|||||
27 | IfEmailUsed - Почта закрыта |
|
|||
На этом уроке мы добавим проверку существования email в БД перед тем как зарегистрировать пользователя. Проведём эксперименты и отрефакторим нашу проверку. Отчёт отправил: 18688. Arslan Выполнено за 29 мин. [Показать отчёт] Научился: Производить проверку валидности. Сложности: Как всегда искать свои ошибки. |
|||||
28 | HasErrors - Где водятся волшебники? |
|
|||
На этом уроке мы реализуем дополнительную проверку, которая будет генерировать ошибку. После чего добавим проверку наличия ошибок перед тем как проверять на валидность email. Поэкспериментируем с последовательностью самих проверок. Отчёт отправил: 18688. Arslan Выполнено за 18 мин. [Показать отчёт] Научился: Проверка не существующего пользователя. Сложности: Все гуд. |
|||||
29 | Save - Запись в книгу |
|
|||
На этом уроке мы реализуем добавление данных пользователя в БД, после успешной проверки. Так же добавим редирект на страничку авторизации после успешной регистрации пользователя. Отчёт отправил: 18688. Arslan Выполнено за 5 дней 5 час. 17 мин. [Показать отчёт] Научился: Терпению и борьбе с вирусом под названием AMIGO ZAHAR, побил все файлы пришлось снести ОСЬ и все уроки по новой проходить. Хорошо что часть файлов сохранилось на рабочем месте, подключился удалено для выполнение отчета по данному уроку. Сложности: Без комментариев. |
|||||
30 | UserLoginForm - Модель на входе |
|
|||
На этом уроке мы реализуем форму авторизации пользователей. Создадим модель UserLoginForm и добавим правила заполнения полей. Отчёт отправил: 18688. Arslan Выполнено за 38 мин. [Показать отчёт] Научился: Создал файл UserLoginForm, прописал в него роли. В UserController в actionLogin указал путь на сборку обработчика правил. Сложности: Найти в себе силы для дальнейшего прохождения заданий. |
|||||
31 | IfEmailNotFound - На деревню дедушке |
|
|||
На этом уроке мы реализуем проверку почтового ящика при авторизации пользователя, а зарегистрирован ли он. Так же настроим контроллер для корректной работы проверки. Отчёт отправил: 18688. Arslan Выполнено за 1 час. 6 мин. [Показать отчёт] Научился: Созданию и доработки функций errorIfEmailNotFound(),actionLoginPost() в UserController. Сложности: Наделал много ошибок, долго искал где ошибся, грамматика английского языка хромает. |
|||||
32 | IfPasswordWrong - Пароль? Пароль! Проходи. |
|
|||
На этом уроке мы добавим ещё одну валидацию при авторизации пользователя, а именно вводимый им пароль. Посмотрим логи запросов в БД и запустим тестирование. Отчёт отправил: 18688. Arslan Выполнено за 1 час. 5 мин. [Показать отчёт] Научился: Реализация функции проверки пароля. Классно когда все тесты прошли без ругательств. Вот фото в честь без ошибочного выполнение команды codecept run прикладываю свою доработку Арканоида. Ждите скоро будет видео обзор. Сложности: Все было на этом уроке без каких либо ошибок. |
|||||
33 | Refactoring - Нет дубликатам! |
|
|||
На этом уроке мы займёмся рефакторингом дублирующего кода, выполняющего одно и тоже на протяжении выполнения одной задачи. Отчёт отправил: 18688. Arslan Выполнено за 22 мин. [Показать отчёт] Научился: Рефракторный это нужный инструмент. Уже знаком с ним. Сложности: Все понятно и просто. |
|||||
34 | Test - Запуск функциональных тестов |
|
|||
На этом уроке мы создадим функциональный тест. Но для корректной его работы, нам понадобиться провести несколько очень важных манипуляций. Отчёт отправил: 18688. Arslan Выполнено за 1 час. 9 мин. [Показать отчёт] Научился: Созданию еще одних тестов. Но вовремя создания тестов возникла ошибка 4 раза просмотрел урок все сделал без ошибок. Но как ее исправить не знаю. Ругается на "[" скобку. Сложности: Не удалось исправить ошибку. |
|||||
35 | PasswordIsHashed - Покажите-ка ваш хэш |
|
|||
На этом уроке мы реализуем тестирование на корректность хешированных паролей перед тем как они сохраняются в БД. Для начала нам понадобиться создать дополнительную функцию установки пароля в UserRecord(). После чего мы приступим к созданию тестов. Отчёт отправил: 18688. Arslan Выполнено за 47 мин. [Показать отчёт] Научился: Написанию тестов для хеширование паролей. Сложности: Не получается исправить ошибку. Пока не ясно где ее искать "[" |
|||||
36 | Security - Кручу-верчу-захэшировать хочу! |
|
|||
На этом уроке мы реализуем хеширование паролей перед тем как их сохранять в базу данных. Для начала нужно очистить все аккаунты пользователей, так как они содержат пароли в явном виде. Отчёт отправил: 18688. Arslan Выполнено за 2 дня 12 мин. [Показать отчёт] Научился: После долгой работы над комментариями наконец-то захешировал пароль. Так же снова))) допустил ошибку один всего лишь пробел на фото два это видно. С каждым уроком загораюсь и получаю заряд энергии от полученного опыта. Сложности: Искать свои ошибки безобидный пробел вымотал))))) |
|||||
37 | Hash - Как правильно солить пароли |
|
|||
На этом уроке мы поговорим о вариантах хеширования паролей пользователей для дополнительной безопасности. Посмотрим, сколько времени занимает хеширование пароля, воспользовавшись встроенной системой профилирования. Отчёт отправил: 18688. Arslan Выполнено за 1 час. 56 мин. [Показать отчёт] Научился: Увеличивать время хеширования. Сложности: Сложностей не возникло. |
|||||
38 | Remember me - Печенька на память |
|
|||
На этом уроке мы поговорим о галочке «Запомнить меня» для авторизации на месяц — чтобы сайт не просил повторно вводить логин/пароль даже после закрытия/открытия браузера. Отчёт отправил: 18688. Arslan Выполнено за 49 мин. [Показать отчёт] Научился: Добавлению инструмента под названием чек бокс запомни меня. Сложности: Все оказалось довольно просто. |
|||||
39 | Authokey - Ключи в сейфе |
|
|||
На этом уроке мы реализуем более безопасный способ автоматической авторизации на сайте. Для этого мы создадим отдельное поле 'authokey', в нашей БД, для автологина. Отчёт отправил: 18688. Arslan Выполнено за 1 час. 1 мин. [Показать отчёт] Научился: Работать еще с одной миграцией. Прописали команду $this->authokey = Yii::$app->security->generateRandomString(100); в классе setPassword. Сложности: При добавлении миграции возникли сложности. Прописал команду php yii.php migrate консоль мне отобразило две миграции m180727_060927_create_user_table m180801_124951_add_authokey_column_to_user_table просил помощи у google увидел что на формах пишут вот такое php yii.php migrate\to имя миграции мне не помогло тогда пришлось думать как самому справиться с этой задачей. Решением проблемы было следующее. Я открыл explorer прошелся до директории C:\OSPanel\domains\school\migrations вырезал от туда первую миграцию m180727_060927_create_user_table вставил ее на директорию выше запустил в консоль команду php yii.php migrate после чего добавил новую созданную миграцию. Затем снова вернул первую миграцию m180727_060927_create_user_table на свое законное место и продолжил дальше изучать курс, вот как то так. Надеюсь что такой вариант был как один из правильных. Расскажите как можно было по другому сделать. Спасибо. |
|||||
40 | REFRESH - 40 МГНОВЕНИЙ ОПЫТА |
|
|||
На этом финальном уроке тебе предстоит повторить весь курс ещё раз. Да, ты не ослышался - выполнить все шаги по созданию этого проекта. Чтобы было удобнее - скачай план уроков всего курса. Уверен, ты сможешь всё сделать самостоятельно, причём, значительно быстрее. Лучше всего это сделать на другом компьютере. |
|||||
Итого: 40 видеоуроков |
7 час. 42 мин. 9 тестов |
5 чел. | |||
Финалисты: Иван Воронин, Tekashnik, Семен, Александр, Tom . |