# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Наша цель - разобраться в этом фреймворке и создать рабочий проект - новую видеошколу. Каждый формулист может стать соавтором новой видеошколы. Каждый участник может написать свои строчки для проекта. И каждый из них получит незаменимый опыт по созданию реального рабочего проекта с использованием современных технологий: Yii, PHP, MySQL, Git, Bootstrap, JavaScript, jQuery, AJAX и многое другое. Отчёт отправил: 791. Валерий Жданов Выполнено за 10 мин. [Показать отчёт] Научился: Прокачал навыки по установке вышеуказанных инструментов Сложности: Ничего Комментарии: Всё установлено было заранее, проверил работоспособность. Речь Евгения Витольдовича вначале отличная! |
|||||
2 | Web - Первый кирпич сайта |
|
|||
На этом уроке мы настроим минимальные версии модулей на нашем OpenServer для дальнейшей работы. Проверим версии apache, php и MySQL. После чего мы поработаем в консоли, создав необходимый минимум. Далее мы проверим работоспособность нашего мини сайта. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: Работать с настройками OpenServer, консолью и доменами Сложности: Ничего Комментарии: Единственное отклонение от урока - в доменах я своему домену придал название lesshol.loc - не стал задействовать localhost, он у меня под другое занят |
|||||
3 | Git - Все ходы записываются |
|
|||
На этом уроке мы проинициализиуем локальный git репозиторий в ранее созданной папке нашего проекта school. После чего откроем нашу папку school в PhpStorm для дальнейшей работы уже в более удобной среде разработки. Создадим необходимый файл .gitignore с базовыми правилами и закоммитим наш первый коммит в локальный git репозиторий. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Прокачал навыки работы с git, посмотрел, как всё делается в Idea Сложности: Ничего Комментарии: Теперь все изменения запротоколируются |
|||||
4 | Composer - Установка пустоты |
|
|||
На этом уроке мы подключим фреймворк Yii через composer в консоли. Научимся получать токен репозитория git. Далее мы приступим к реализации нашего проекта, для начала модифицируем index.php, чтобы задействовать фреймворк Yii. Так же создадим конфигурационный файл для нашего проекта и передадим его как параметр при создании экземпляра веб-приложения Yii. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: всему, чему учили. для меня весь урок - полная новизна (и файлы настроек, и консольные дела, и index.php) Сложности: все легко и понятно Комментарии: спасибо за этот урок |
|||||
5 | Controller - Точка входа программиста |
|
|||
На этом уроке мы создадим первый контроллер, который является точкой входа для нашего веб-приложения. Познакомимся с полезными ссылками и схемами жизненного цикла нашего веб-приложения. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Прокачал навыки предыдущих уроков и знания о контроллерах из asp.net Сложности: найти опечатку Комментарии: написал actionsIndex - s из середины и была опечаткой, мешающей работе. убрал - всё пошло |
|||||
6 | Views - Представления начинаются |
2 теста |
|||
На этом уроке мы создадим первое представление для отображения основной странички нашего веб-приложения. Для удобного поиска ошибок мы активируем встроенную в Yii систему отладки. Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: работать с контроллерами и представлениями (вспомнил соответствующие темы в asp.net) Сложности: Найти опечатки Комментарии: Ну не удержался я... в main немного добавил своего css, который не был на уроке, и зеленый блок ... но потом по указаниям Игромистра всё удалил, так что чисто всё, можно добавлять дизайн по-взрослому |
|||||
7 | Codeception - Пошаговое тестирование |
1 тест |
|||
На этом уроке мы установим систему тестирования веб-приложений и создадим несколько тестов имитации поведения гостя на сайте. Отчёт отправил: 791. Валерий Жданов Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Поднимать систему тестирования на yii2 и делать тесты Сложности: Найти ошибки Комментарии: "Кровавым" этот урок для меня получился. Сначала не хотел ставиться codeception (см рис 1). После большого количества проб и серфинга ресурсов сделал команду composer global require fxp/composer-asset-plugin --no-plugins, но не с первого раза после нее встал codeception. В конце концов проблема решилась. Но потом не пошел сразу тест. Долго тоже всё пересматривал, наконец понял, что не совсем верно вписал свой домен в acceptance.suite.yml (аргумент в пользу копипастов). Ну и наконец всё отработало, даже тогда, когда я и в site/index.php, и в тесте ввел русские слова. правда в тесте вывел кракозябами, но счел их нормальными (рис 2) |
|||||
8 | Bootstrap - Пусть будет красиво! |
|
|||
На этом уроке мы начнём оформление нашего сайта. Для этого мы установим и подключим набор инструментов bootstrap, включающий в себя HTML/CSS шаблоны оформления и JavaScript расширения. Первое что нам необходимо сделать, это добавить верхнее меню. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: работе с триггерами Сложности: сделать, чтобы контент не залезал под меню Комментарии: а у меня получилось - я убрал navbar-fixed-top и вытащил навпанель из дива (в котором у меня он был, но у ЕВ он не в диве,так что всё нормально). И всё хорошо, без отступов и маргинов у меня уполз контент вниз и хорошо виден |
|||||
9 | Menu - Богатый выбор |
|
|||
На прошлом уроке мы создали навигационную панель, на этом уроке мы разместим пункты меню на этой панели. Отчёт отправил: 791. Валерий Жданов Выполнено за 32 мин. [Показать отчёт] Научился: Делать пункты меню, копировать действия контроллера Сложности: Всё просто Комментарии: Пункты добавились, всё работает |
|||||
10 | Join/login - Полёт Навигатора |
1 тест |
|||
На этом уроке мы вернёмся к ранее созданным тестам, которые провалились при проверке пунктов меню регистрации и авторизации пользователя. На этом уроке мы устраним проблемы, изза которых тесты не могут завершиться успешно. Отчёт отправил: 791. Валерий Жданов Выполнено за 23 мин. [Показать отчёт] Научился: Делать красивые адресные строки (ЧПУ), прокачал asp.net-овские навыки по представлениями уже здесь, в yii2 Сложности: Ничего Комментарии: с ЧПУ у меня всегда были сложности, и мне очень понравилось, как реализовано здесь. Представления - это понятно и удобно. Урок очень понравился )) |
|||||
11 | Debug - Следы на песке |
1 тест |
|||
На этом уроке мы установим систему отладки в Yii для удобства отлавливания ошибок. После чего мы его подключим, прописав необходимые параметры в конфигурационный файл. Так же продемонстрируем как добавлять собственные логи по типу. Посмотрите инструкцию по установке. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: открыл для себя крутейший yii-отладчик Сложности: исправлять ошибки "на интерактиве" Комментарии: Делал во время записи урока, по ходу возникали ошибки, исправлял сразу |
|||||
12 | User - Помещение регистратуры |
|
|||
На этом уроке мы займёмся причёсыванием нашего проекта. Создадим необходимые тесты для обоснования наших действий. Для начала вынесем функции join/login в отдельный контроллер. Так же перенесём сопутствующие файлы видов в одноимённую папку. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Прокачал навыки рефакторинга Сложности: Пройти тесты Комментарии: Были некоторые проблемы с прохождениями тестов, но помогло еще раз разобрать работу тестировщика и то, как мне смотреть ошибки тестов |
|||||
13 | Panel - Красивые анкеты |
|
|||
На этом уроке мы займёмся оформлением страничек регистрации и авторизации при помощи набора инструментов bootstrap. Для этого мы доработаем наши представления join/login.php Отчёт отправил: 791. Валерий Жданов Выполнено за 13 мин. [Показать отчёт] Научился: Прокачал навыки дизайнера Сложности: Ничего Комментарии: Как и говорилось в видео, моя любимая тема) |
|||||
14 | Model - Модели на подиуме |
|
|||
На этом уроке мы поговорим о моделях, представлениях и связях через контроллер. Для этого мы рассмотрим схему, на основе которой будем писать код в последующих уроках. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Поработал с uml-схемой Сложности: сложностей нет Комментарии: Верхние модели наследуются от шаблонов, нижние - это уже модели форм, они наследуются от модели User |
|||||
15 | Tests - Обоснование необходимости |
|
|||
На этом уроке мы займёмся обоснованием дальнеших действий через создание тестов. По аналогии напоминает написание ТЗ для программистов. Далее реализуем тесты поведения пользователей на сайте. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Новым видам тестов Сложности: Всё сложно, но интересно Комментарии: отработка теста не получилась, но это видимо в следующем уроке |
|||||
16 | Steps - Пошаговая инструкция |
|
|||
На этом уроке мы реализуем сгенерированные на прошлом уроке функции для корректной работы созданных, так же на прошлом уроке, тестов. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Тестировать добавление пользователя Сложности: Найти опечатку Комментарии: Нашел опечатку-тест пошел |
|||||
17 | Console - Есть ли жизнь в Консоли? |
|
|||
На этом уроке мы создадим консольное приложение на базе Yii и почитаем описание команд. Подключим vendor\autoload.php для корректной работы php yii.php help migrate. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Полная новизна - узнал о работе в yii через консоль Сложности: ничего Комментарии: А жизнь на консоли всё же есть |
|||||
18 | Migration - Архитектура таблицы |
|
|||
На этом уроке мы создадим первую миграцию, опишем в ней структуру таблицы user. Миграции помогают следить за актуальностью схемы базы данных. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Создавать миграции Сложности: Ничего Комментарии: Вынужден признать - тут работа с EF удобнее, чем в asp.net |
|||||
19 | DBase - Подключение к Матрице |
2 теста |
|||
На этом уроке мы создадим базу данных в MySQL. После чего создадим конфигурационный файл подключения к БД. Далее запустим миграцию в нашем консольном приложении, для автоматической генерации актуальной структуры таблиц. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Создавать БД в yii2 Сложности: Ничего Комментарии: Если проведена предварительная работа, пройдены уроки по тестам, yii-консоли и созданию файла миграции, то на этом уроке всё просто, а результат убойный |
|||||
20 | UserRecord - Очень активная модель |
|
|||
На этом уроке мы создадим модель связи с таблицей пользователей. Добавим в таблицу нашего первого пользователя. После чего перейдём на страничку регистрации и проверим добавился ли пользователь в БД. Так же поизучаем дебаг панель, изучим что происходит при работе с БД. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: Работе с моделями и шаблоном ActiveRecord в yii Сложности: найти свою опечатку Комментарии: дебаг просто отличный |
|||||
21 | Faker - Тысяча фантазёров! |
1 тест |
|||
На этом уроке мы добавим библиотеку Faker для генерации случайных данных при создании случайных пользователей. Для этого мы вначале установим необходимую библиотеку. После чего используем её в наших тестах. Отчёт отправил: 791. Валерий Жданов Выполнено за 10 мин. [Показать отчёт] Научился: Подключать и работать с библиотекой faker Сложности: Ничего Комментарии: Просто и элегантно, теперь надо сделать добавление пользователя через форму |
|||||
22 | UserIdentity - Посторонним В |
|
|||
На этом уроке мы переходим к аутентификации пользователей на нашем сайте. Для этого мы воспользуемся встроенным в Yii интерфейсом IdentityInterface. Немного поэкспериментируем с авторизацией пользователей. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: работать с Identity в yii2 Сложности: ничего (и всё одновременно) Комментарии: Быстро и проще чем в asp.net. Но это пока я не дошел до авторизации, с ролями будет, я думаю, посложнее |
|||||
23 | Logout - Выход из лабиринта |
|
|||
На этом уроке мы реализуем возможность выхода с сайта. Для этого нам понадобиться доработать представление меню, чтобы оно отличалось при авторизованном/неавторизованном пользователе. Так же реализуем метод выхода пользователя с сайта (Logout). Отчёт отправил: 791. Валерий Жданов Выполнено за 16 мин. [Показать отчёт] Научился: Деавторизации Сложности: Ничего Комментарии: Если нет выхода, надо искать вход. Если нет logIn, ищем LogOut |
|||||
24 | UserJoinForm - Модель для формы |
|
|||
На этом уроке мы создадим модель для формы регистрации пользователя. После чего мы добавим её использование в нашем представлении join.php Отчёт отправил: 791. Валерий Жданов Выполнено за 28 мин. [Показать отчёт] Научился: Создавать модель и пользовательскую форму Сложности: Ничего Комментарии: Тоже одна из любимых тематик. Реально всё получается гибко. Про asp.net - я делал нам хелпер для submit-кнопки, но для этого приходилось создавать целый класс. здесь всё готовое и удобное. |
|||||
25 | Rules - Валидация без правил |
1 тест |
|||
На этом уроке мы добавим валидацию полей при регистрации пользователя. Также для полей добавим индивидуальные правила. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Работать с валидацией форм Сложности: Ничего Комментарии: Всё отлично получилось, И скриншот тому пример |
|||||
26 | JoinPost - Вторая сторона модели |
|
|||
На этом уроке мы реализуем вспомогательную функцию, куда перенесём обработку фазы POST запроса нашей формы регистрации пользователей. Так же добавим генерацию начальных данных для первой фазы регистрации пользователей. Отчёт отправил: 791. Валерий Жданов Выполнено за 35 мин. [Показать отчёт] Научился: работать с get и post в php Сложности: после asp.net привыкнуть к тому, что get и post по сути в одной функции здесь реализовано Комментарии: а в PHP есть метот _REQUEST, который объединяет и get, и post в себе. Здешняя реализация - выше всяких похвал |
|||||
27 | IfEmailUsed - Почта закрыта |
|
|||
На этом уроке мы добавим проверку существования email в БД перед тем как зарегистрировать пользователя. Проведём эксперименты и отрефакторим нашу проверку. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: Создавать свою функцию для проверки валидности данных Сложности: не заспамить создателей Yii2 восторженными письмами, какие же они молодцы, как всё продумали для нашего комфортного программирования!!!!!!!!! Комментарии: очень понравился урок, всё сделал, правда была какая-то проблема, из - за которой нерефакторенный код не работал, а перенес поиск еmail в нужный класс, доработал урок до конца - всё стало как по маслу |
|||||
28 | HasErrors - Где водятся волшебники? |
|
|||
На этом уроке мы реализуем дополнительную проверку, которая будет генерировать ошибку. После чего добавим проверку наличия ошибок перед тем как проверять на валидность email. Поэкспериментируем с последовательностью самих проверок. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Изучил очередность запросов на валидацию Сложности: Осознать серьезность урока Комментарии: Урок намного серьезнее, чем кажется с первого взгляда. Мы здесь выходим на очередность пользовательских проверок, уровень, когда необходимо планировать не только весь объем текущих тестов, но и временную их последовательность |
|||||
29 | Save - Запись в книгу |
|
|||
На этом уроке мы реализуем добавление данных пользователя в БД, после успешной проверки. Так же добавим редирект на страничку авторизации после успешной регистрации пользователя. Отчёт отправил: 791. Валерий Жданов Выполнено за 20 мин. [Показать отчёт] Научился: Реализовывать сохранение в БД из формы Сложности: Ничего Комментарии: Тоже одна из любимых тем. Рад, что в Yii2 всё так просто |
|||||
30 | UserLoginForm - Модель на входе |
|
|||
На этом уроке мы реализуем форму авторизации пользователей. Создадим модель UserLoginForm и добавим правила заполнения полей. Отчёт отправил: 791. Валерий Жданов Выполнено за 30 мин. [Показать отчёт] Научился: прокачал навыки с формами, валидацией и тестами Сложности: Ничего Комментарии: Опять прокачка любимых тем и навыков. Очень понравилось, подизайнил, и попользовался функциями yii2 |
|||||
31 | IfEmailNotFound - На деревню дедушке |
|
|||
На этом уроке мы реализуем проверку почтового ящика при авторизации пользователя, а зарегистрирован ли он. Так же настроим контроллер для корректной работы проверки. Отчёт отправил: 791. Валерий Жданов Выполнено за 16 мин. [Показать отчёт] Научился: Прокачал предыдущие навыки Сложности: Найти свои ошибки, были опечатки в тексте кода Комментарии: Но всё завершилось благополучно |
|||||
32 | IfPasswordWrong - Пароль? Пароль! Проходи. |
|
|||
На этом уроке мы добавим ещё одну валидацию при авторизации пользователя, а именно вводимый им пароль. Посмотрим логи запросов в БД и запустим тестирование. Отчёт отправил: 791. Валерий Жданов Выполнено за 34 мин. [Показать отчёт] Научился: Прокачал валидацию Сложности: Ничего Комментарии: Повторенье - мать ученья |
|||||
33 | Refactoring - Нет дубликатам! |
|
|||
На этом уроке мы займёмся рефакторингом дублирующего кода, выполняющего одно и тоже на протяжении выполнения одной задачи. Отчёт отправил: 791. Валерий Жданов Выполнено за 10 мин. [Показать отчёт] Научился: Прокачал знания и навыки рефакторинга Сложности: Ничего Комментарии: У Игромистра курс отличный, "Про Yii2" зовется он, И днем и ночью код учёный Мы пишем на PhpStorm. Сейчас мы строки рефакторим, Про рефакторинг говорим, И код прекрасным наш выходит, И мы без дела не сидим |
|||||
34 | Test - Запуск функциональных тестов |
|
|||
На этом уроке мы создадим функциональный тест. Но для корректной его работы, нам понадобиться провести несколько очень важных манипуляций. Отчёт отправил: 791. Валерий Жданов Выполнено за 40 мин. [Показать отчёт] Научился: Тестировать серверные дела Сложности: Ничего Комментарии: Получился тест |
|||||
35 | PasswordIsHashed - Покажите-ка ваш хэш |
|
|||
На этом уроке мы реализуем тестирование на корректность хешированных паролей перед тем как они сохраняются в БД. Для начала нам понадобиться создать дополнительную функцию установки пароля в UserRecord(). После чего мы приступим к созданию тестов. Отчёт отправил: 791. Валерий Жданов Выполнено за 2 час. 05 мин. [Показать отчёт] Научился: Делать функциональные тесты для БД пользователя и проверять пароли Сложности: Избавиться от ошибки class 'Yii' not found - на прошлом уроке ушла по рекомендациям Игромистра, сейчас снова всплыла, пришлось чистить все _bootstrap.php и переписывать побуквенно все настройки Комментарии: И после долгих и продолжительных боёв тест отработал (вернее показал ошибку) в точности как на уроке |
|||||
36 | Security - Кручу-верчу-захэшировать хочу! |
|
|||
На этом уроке мы реализуем хеширование паролей перед тем как их сохранять в базу данных. Для начала нужно очистить все аккаунты пользователей, так как они содержат пароли в явном виде. Отчёт отправил: 791. Валерий Жданов Выполнено за 29 мин. [Показать отчёт] Научился: Хешировать пароли и проверять правильность ввода Сложности: После "кровавого" преодоления сложностей прошлого урока здесь для меня уже всё просто!!! Комментарии: А расшифровать захешированный пароль можно? или только проверить на валидность - "он" или " не он" возможно? вот два вопроса меня задуматься заставляют. остальное всё красиво и элегантно, снова восхищаюсь разработчиками данного фреймворка |
|||||
37 | Hash - Как правильно солить пароли |
|
|||
На этом уроке мы поговорим о вариантах хеширования паролей пользователей для дополнительной безопасности. Посмотрим, сколько времени занимает хеширование пароля, воспользовавшись встроенной системой профилирования. Отчёт отправил: 791. Валерий Жданов Выполнено за 18 мин. [Показать отчёт] Научился: Тестировать залогинивание и регистрацию Сложности: сложностей не было Комментарии: Долго регистрируется и входит. И откатиться получилось быстро |
|||||
38 | Remember me - Печенька на память |
|
|||
На этом уроке мы поговорим о галочке «Запомнить меня» для авторизации на месяц — чтобы сайт не просил повторно вводить логин/пароль даже после закрытия/открытия браузера. Отчёт отправил: 791. Валерий Жданов Выполнено за 9 мин. [Показать отчёт] Научился: Реализовывать в YII2 запоминание пароля Сложности: ничего Комментарии: Сложностей нет, но новизна полная. Очень интересно и удобно реализовано. Кстати один из портабельных браузеров у меня не хотел сохранять пароль (наверное устаревший). Остальные без проблем |
|||||
39 | Authokey - Ключи в сейфе |
|
|||
На этом уроке мы реализуем более безопасный способ автоматической авторизации на сайте. Для этого мы создадим отдельное поле 'authokey', в нашей БД, для автологина. Отчёт отправил: 791. Валерий Жданов Выполнено за 15 мин. [Показать отчёт] Научился: Добавлять authokey плюс любимые миграции Сложности: Ничего Комментарии: Очень люблю миграции еще с времен использования одного малоизвестного фреймворка от Майкрософт))) А Евгению Витольдовичу спасибо за этот интересный курс! |
|||||
40 | REFRESH - 40 МГНОВЕНИЙ ОПЫТА |
|
|||
На этом финальном уроке тебе предстоит повторить весь курс ещё раз. Да, ты не ослышался - выполнить все шаги по созданию этого проекта. Чтобы было удобнее - скачай план уроков всего курса. Уверен, ты сможешь всё сделать самостоятельно, причём, значительно быстрее. Лучше всего это сделать на другом компьютере. |
|||||
Итого: 40 видеоуроков |
7 час. 42 мин. 9 тестов |
5 чел. | |||
Финалисты: Иван Воронин, Tekashnik, Семен, Александр, Tom . |