# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Наша цель - разобраться в этом фреймворке и создать рабочий проект - новую видеошколу. Каждый формулист может стать соавтором новой видеошколы. Каждый участник может написать свои строчки для проекта. И каждый из них получит незаменимый опыт по созданию реального рабочего проекта с использованием современных технологий: Yii, PHP, MySQL, Git, Bootstrap, JavaScript, jQuery, AJAX и многое другое. Отчёт отправил: 8275. Tekashnik Выполнено за 48 мин. [Показать отчёт] Научился: Устанавливать Open server Сложности: Придумать, что было самым сложным Комментарии: Всё уже было кроме Open server |
|||||
2 | Web - Первый кирпич сайта |
|
|||
На этом уроке мы настроим минимальные версии модулей на нашем OpenServer для дальнейшей работы. Проверим версии apache, php и MySQL. После чего мы поработаем в консоли, создав необходимый минимум. Далее мы проверим работоспособность нашего мини сайта. Отчёт отправил: 8275. Tekashnik Выполнено за 31 мин. [Показать отчёт] Научился: Работать с настройками OpenServer Сложности: Всё получилось и понятно Комментарии: Раньше работал с сервером WAMP, сейчас переехал на OpenServer |
|||||
3 | Git - Все ходы записываются |
|
|||
На этом уроке мы проинициализиуем локальный git репозиторий в ранее созданной папке нашего проекта school. После чего откроем нашу папку school в PhpStorm для дальнейшей работы уже в более удобной среде разработки. Создадим необходимый файл .gitignore с базовыми правилами и закоммитим наш первый коммит в локальный git репозиторий. Отчёт отправил: 8275. Tekashnik Выполнено за 24 мин. [Показать отчёт] Научился: Инициировать GIT в нашем проекте Сложности: Немного по началу не то сделал но потом быстро всё поправил Комментарии: Думаете хорошая идея phpStorm обновить? Давайте попробуем |
|||||
4 | Composer - Установка пустоты |
|
|||
На этом уроке мы подключим фреймворк Yii через composer в консоли. Научимся получать токен репозитория git. Далее мы приступим к реализации нашего проекта, для начала модифицируем index.php, чтобы задействовать фреймворк Yii. Так же создадим конфигурационный файл для нашего проекта и передадим его как параметр при создании экземпляра веб-приложения Yii. Отчёт отправил: 8275. Tekashnik Выполнено за 19 мин. [Показать отчёт] Научился: Добовлять в проект фреймворк Yii разными способами Сложности: Придумать как сделать всё на оффлайновом компьютере Комментарии: Вроде всё получилось сделать на офлайновом компьютере, время покажет насколько этот способ всё сделал правильно (наверное когда уже непосредственные результаты от работы с фреймворком получим) |
|||||
5 | Controller - Точка входа программиста |
|
|||
На этом уроке мы создадим первый контроллер, который является точкой входа для нашего веб-приложения. Познакомимся с полезными ссылками и схемами жизненного цикла нашего веб-приложения. Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: Создавать первый контроллер в проекте и наследовать его от контроллера фреймворка Сложности: Всё очень понятно Комментарии: Такая пошаговость очень необходима для учеников, которые не сильны в данных технологиях. |
|||||
6 | Views - Представления начинаются |
2 теста |
|||
На этом уроке мы создадим первое представление для отображения основной странички нашего веб-приложения. Для удобного поиска ошибок мы активируем встроенную в Yii систему отладки. Отчёт отправил: 8275. Tekashnik Выполнено за 34 мин. [Показать отчёт] Научился: Создавать первое представление Сложности: Не запутаться во всех новых созданных файлах Комментарии: Очень много новой информации, главное ничего не перепутать))) |
|||||
7 | Codeception - Пошаговое тестирование |
1 тест |
|||
На этом уроке мы установим систему тестирования веб-приложений и создадим несколько тестов имитации поведения гостя на сайте. Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт] Научился: Познакомился с тестами в фреймворке Сложности: Скачать codecept на компьютер без интернета Комментарии: Супер вещь, для тестирования веб сайтов, похожа на модуль Selenium для тестов веб страниц. |
|||||
8 | Bootstrap - Пусть будет красиво! |
|
|||
На этом уроке мы начнём оформление нашего сайта. Для этого мы установим и подключим набор инструментов bootstrap, включающий в себя HTML/CSS шаблоны оформления и JavaScript расширения. Первое что нам необходимо сделать, это добавить верхнее меню. Отчёт отправил: 8275. Tekashnik Выполнено за 32 мин. [Показать отчёт] Научился: Подключать bootstrap и начать оформлять проект Сложности: Сложно понять как эти все стрелочки работают -> => Комментарии: Надо бы какой то ликбез пройти по php, кто что может порекомендовать? |
|||||
9 | Menu - Богатый выбор |
|
|||
На прошлом уроке мы создали навигационную панель, на этом уроке мы разместим пункты меню на этой панели. Отчёт отправил: 8275. Tekashnik Выполнено за 31 мин. [Показать отчёт] Научился: Создавать меню в навбвре и писать пару методов в контроллере Сложности: Пока немного голова идёт кругом Комментарии: Будем потихонечку разбираться с помощью игромистра))) |
|||||
10 | Join/login - Полёт Навигатора |
1 тест |
|||
На этом уроке мы вернёмся к ранее созданным тестам, которые провалились при проверке пунктов меню регистрации и авторизации пользователя. На этом уроке мы устраним проблемы, изза которых тесты не могут завершиться успешно. Отчёт отправил: 8275. Tekashnik Выполнено за 28 мин. [Показать отчёт] Научился: Создавать файл .htaccess Сложности: Разобраться во всём новом Комментарии: Получаем много много информации, а потом когда она усваивается потихонечку, благодать разливается по всему телу))) |
|||||
11 | Debug - Следы на песке |
1 тест |
|||
На этом уроке мы установим систему отладки в Yii для удобства отлавливания ошибок. После чего мы его подключим, прописав необходимые параметры в конфигурационный файл. Так же продемонстрируем как добавлять собственные логи по типу. Посмотрите инструкцию по установке. Отчёт отправил: 8275. Tekashnik Выполнено за 35 мин. [Показать отчёт] Научился: Устанавливать Debug Сложности: скрыть восхищение от всего происходящего Комментарии: Качественный дебаг это уже полдела)) |
|||||
12 | User - Помещение регистратуры |
|
|||
На этом уроке мы займёмся причёсыванием нашего проекта. Создадим необходимые тесты для обоснования наших действий. Для начала вынесем функции join/login в отдельный контроллер. Так же перенесём сопутствующие файлы видов в одноимённую папку. Отчёт отправил: 8275. Tekashnik Выполнено за 32 мин. [Показать отчёт] Научился: Создававть UserController Сложности: Проникаться тем как всё тут устроено) Комментарии: Ещё раз пробежались по основным файлам проекта, и немного всё повторили, понимание есть но пока не 100 процентов |
|||||
13 | Panel - Красивые анкеты |
|
|||
На этом уроке мы займёмся оформлением страничек регистрации и авторизации при помощи набора инструментов bootstrap. Для этого мы доработаем наши представления join/login.php Отчёт отправил: 8275. Tekashnik Выполнено за 29 мин. [Показать отчёт] Научился: Немнго оформлять наши странички Сложности: Не радоваться проделанной работе Комментарии: Потихонечку продвигаемся к очень серьёзной теме |
|||||
14 | Model - Модели на подиуме |
|
|||
На этом уроке мы поговорим о моделях, представлениях и связях через контроллер. Для этого мы рассмотрим схему, на основе которой будем писать код в последующих уроках. Отчёт отправил: 8275. Tekashnik Выполнено за 38 мин. [Показать отчёт] Научился: Внимательно послушать урок Сложности: Понять какие модели куда Комментарии: Осталось дело за малым, внедрить наши модели в проект |
|||||
15 | Tests - Обоснование необходимости |
|
|||
На этом уроке мы займёмся обоснованием дальнеших действий через создание тестов. По аналогии напоминает написание ТЗ для программистов. Далее реализуем тесты поведения пользователей на сайте. Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: Написать новые тесты Сложности: Понять почему делаем новый файл для тестов Комментарии: Как я понял делаем отдельный файл для тестов чтобы логически разделить тесты, а так то всё также по порядку идёт как и в предидущем |
|||||
16 | Steps - Пошаговая инструкция |
|
|||
На этом уроке мы реализуем сгенерированные на прошлом уроке функции для корректной работы созданных, так же на прошлом уроке, тестов. Отчёт отправил: 8275. Tekashnik Выполнено за 27 мин. [Показать отчёт] Научился: Делать ТЗ на следующие работы Сложности: Найти время Комментарии: Всё понятно, много очень новой информации, как бы её подольше в голове задержать)) |
|||||
17 | Console - Есть ли жизнь в Консоли? |
|
|||
На этом уроке мы создадим консольное приложение на базе Yii и почитаем описание команд. Подключим vendor\autoload.php для корректной работы php yii.php help migrate. Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт] Научился: Создавать консольное приложение Сложности: Не совсем так я консольные приложения себя представляю Комментарии: А можно интересно написать какоенибудь консольное приложение как на C#, и если да, то как? |
|||||
18 | Migration - Архитектура таблицы |
|
|||
На этом уроке мы создадим первую миграцию, опишем в ней структуру таблицы user. Миграции помогают следить за актуальностью схемы базы данных. Отчёт отправил: 8275. Tekashnik Выполнено за 28 мин. [Показать отчёт] Научился: Создавать миграцию Сложности: Понять весь процесс Комментарии: Далёк я от миграций, всё метафизику их не понимаю, так как не был в ситуации, что мне это нужно было... поэтому немного расплывчато |
|||||
19 | DBase - Подключение к Матрице |
2 теста |
|||
На этом уроке мы создадим базу данных в MySQL. После чего создадим конфигурационный файл подключения к БД. Далее запустим миграцию в нашем консольном приложении, для автоматической генерации актуальной структуры таблиц. Отчёт отправил: 8275. Tekashnik Выполнено за 29 мин. [Показать отчёт] Научился: Создавать bd Сложности: Найти время Комментарии: Крутая штука миграция оказывается)) |
|||||
20 | UserRecord - Очень активная модель |
|
|||
На этом уроке мы создадим модель связи с таблицей пользователей. Добавим в таблицу нашего первого пользователя. После чего перейдём на страничку регистрации и проверим добавился ли пользователь в БД. Так же поизучаем дебаг панель, изучим что происходит при работе с БД. Отчёт отправил: 8275. Tekashnik Выполнено за 32 мин. [Показать отчёт] Научился: Создавать тестового пользователя Сложности: Понять как устроен этот мир Комментарии: Как же оно внутри фреймворка всё крутится)) |
|||||
21 | Faker - Тысяча фантазёров! |
1 тест |
|||
На этом уроке мы добавим библиотеку Faker для генерации случайных данных при создании случайных пользователей. Для этого мы вначале установим необходимую библиотеку. После чего используем её в наших тестах. Отчёт отправил: 8275. Tekashnik Выполнено за 54 мин. [Показать отчёт] Научился: Познакомился с библиотекой Faker Сложности: Загрузить на оффлайновый компьютер искомую библиотеку Комментарии: Весёлая эта штука Faker, есть что то подобное на C#? Поискал в гуглах, но ничего стандартного или сделанного для бесплатного использования, интузиастами, не неаёшёл. Но наашёл некоторые интересные ресурсы на которых можно генерировать для своих нужд данные, например http://generatedata.com/ |
|||||
22 | UserIdentity - Посторонним В |
|
|||
На этом уроке мы переходим к аутентификации пользователей на нашем сайте. Для этого мы воспользуемся встроенным в Yii интерфейсом IdentityInterface. Немного поэкспериментируем с авторизацией пользователей. Отчёт отправил: 8275. Tekashnik Выполнено за 26 мин. [Показать отчёт] Научился: Производить идентификацию в yii Сложности: Понять как догадаться делать записи в конфиг файлах Комментарии: Голова немного пухнет идём дальше)) |
|||||
23 | Logout - Выход из лабиринта |
|
|||
На этом уроке мы реализуем возможность выхода с сайта. Для этого нам понадобиться доработать представление меню, чтобы оно отличалось при авторизованном/неавторизованном пользователе. Так же реализуем метод выхода пользователя с сайта (Logout). Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Писать logout Сложности: В очередной раз понять, что за нас всю работу сделал фреймворк Комментарии: Написал вызов одной функции logout и бах всё работает. |
|||||
24 | UserJoinForm - Модель для формы |
|
|||
На этом уроке мы создадим модель для формы регистрации пользователя. После чего мы добавим её использование в нашем представлении join.php Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Генерировать с помощью фреймворка форму Сложности: Уследить что, откуда и куда, когда, зачем и почему Комментарии: В голове моей туманы маны)) |
|||||
25 | Rules - Валидация без правил |
1 тест |
|||
На этом уроке мы добавим валидацию полей при регистрации пользователя. Также для полей добавим индивидуальные правила. Отчёт отправил: 8275. Tekashnik Выполнено за 40 мин. [Показать отчёт] Научился: Производить валидацию формы Сложности: Найти время Комментарии: Продолжаем удивляться возможностям фреймворка) |
|||||
26 | JoinPost - Вторая сторона модели |
|
|||
На этом уроке мы реализуем вспомогательную функцию, куда перенесём обработку фазы POST запроса нашей формы регистрации пользователей. Так же добавим генерацию начальных данных для первой фазы регистрации пользователей. Отчёт отправил: 8275. Tekashnik Выполнено за 43 мин. [Показать отчёт] Научился: Разделять отображение формы на с данными GET и с данными POST Сложности: Понять как всё работает Комментарии: Постигаем непостяжимое, изведываем неизведанное |
|||||
27 | IfEmailUsed - Почта закрыта |
|
|||
На этом уроке мы добавим проверку существования email в БД перед тем как зарегистрировать пользователя. Проведём эксперименты и отрефакторим нашу проверку. Отчёт отправил: 8275. Tekashnik Выполнено за 53 мин. [Показать отчёт] Научился: Добавлять пользовательскую валидацию Сложности: Разобраться как работает SQL запрос из ActiveRecord Комментарии: Продолжаем работу над хорошим и правильным кодом нашего проекта |
|||||
28 | HasErrors - Где водятся волшебники? |
|
|||
На этом уроке мы реализуем дополнительную проверку, которая будет генерировать ошибку. После чего добавим проверку наличия ошибок перед тем как проверять на валидность email. Поэкспериментируем с последовательностью самих проверок. Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: Узнал о Revert в Git Сложности: Поверить в существование волшебников Комментарии: Всякие эксперименты всегда добавляют немного к пониманию)) |
|||||
29 | Save - Запись в книгу |
|
|||
На этом уроке мы реализуем добавление данных пользователя в БД, после успешной проверки. Так же добавим редирект на страничку авторизации после успешной регистрации пользователя. Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт] Научился: Сохранять данные в БД Сложности: Найти ошибку Комментарии: Дебагер помог найти ошибку, но всё ещё не просто ориентироваться в проекте |
|||||
30 | UserLoginForm - Модель на входе |
|
|||
На этом уроке мы реализуем форму авторизации пользователей. Создадим модель UserLoginForm и добавим правила заполнения полей. Отчёт отправил: 8275. Tekashnik Выполнено за 41 мин. [Показать отчёт] Научился: Создавать model и view для UserLoginForm Сложности: Не радоваться тому обстаятельству что уже стало немного больше понимания по сравнению с тем как мы делали UserJoinForm Комментарии: Надо поторапливаться а то скоро уже курс будет закрыт))) |
|||||
31 | IfEmailNotFound - На деревню дедушке |
|
|||
На этом уроке мы реализуем проверку почтового ящика при авторизации пользователя, а зарегистрирован ли он. Так же настроим контроллер для корректной работы проверки. Отчёт отправил: 8275. Tekashnik Выполнено за 38 мин. [Показать отчёт] Научился: Проводить аутентификацию с помощью только емайла Сложности: Уследить за всем происходящим на экране Комментарии: Ждём с нетерпнием прикручивания пароля к проверке |
|||||
32 | IfPasswordWrong - Пароль? Пароль! Проходи. |
|
|||
На этом уроке мы добавим ещё одну валидацию при авторизации пользователя, а именно вводимый им пароль. Посмотрим логи запросов в БД и запустим тестирование. Отчёт отправил: 8275. Tekashnik Выполнено за 36 мин. [Показать отчёт] Научился: Проводить аутентификацию с помощью пароля Сложности: Искать ошибки после того как игромиср сказал: "Yes" Комментарии: Оказалось, что у меня ошибок больше, чем у игромистра. Пришлось выяснять с помощью тестов, но зато получил опыт поиска и устранения ошибок. Большинство ошибок было то, что формулировки ошибок в основном коде не совпадали с формулировкой в тестах. |
|||||
33 | Refactoring - Нет дубликатам! |
|
|||
На этом уроке мы займёмся рефакторингом дублирующего кода, выполняющего одно и тоже на протяжении выполнения одной задачи. Отчёт отправил: 8275. Tekashnik Выполнено за 45 мин. [Показать отчёт] Научился: Рефакторить програмный код Сложности: Придумать, что было самым сложным Комментарии: Хорошая вещь рефакторинг, если к ней с умом подходить) |
|||||
34 | Test - Запуск функциональных тестов |
|
|||
На этом уроке мы создадим функциональный тест. Но для корректной его работы, нам понадобиться провести несколько очень важных манипуляций. Отчёт отправил: 8275. Tekashnik Выполнено за 41 мин. [Показать отчёт] Научился: Делать функциноальные тесты Сложности: Следить за тем, что и где нужно прописать, чтобы они заработали Комментарии: Просто невероятный путь нужно проделать чтобы функциональные тесты заработали для моделей, для меня понимание этого пока остаётся за гранью) |
|||||
35 | PasswordIsHashed - Покажите-ка ваш хэш |
|
|||
На этом уроке мы реализуем тестирование на корректность хешированных паролей перед тем как они сохраняются в БД. Для начала нам понадобиться создать дополнительную функцию установки пароля в UserRecord(). После чего мы приступим к созданию тестов. Отчёт отправил: 8275. Tekashnik Выполнено за 37 мин. [Показать отчёт] Научился: Делать функциноальные тесты для проверки захэшированных паролей Сложности: Написать комментарии (не сложно, а лениво) Комментарии: Написал комментарии, см. на скриншоте. Надеюсь я всё понял, что автор хотел донестии до меня, если не прав, то прошу поправить |
|||||
36 | Security - Кручу-верчу-захэшировать хочу! |
|
|||
На этом уроке мы реализуем хеширование паролей перед тем как их сохранять в базу данных. Для начала нужно очистить все аккаунты пользователей, так как они содержат пароли в явном виде. Отчёт отправил: 8275. Tekashnik Выполнено за 38 мин. [Показать отчёт] Научился: Хэшировать пароль и проверять захэшированный пароль Сложности: Понять как работает hash функция Комментарии: Надо бы разузнать как работает хэширование |
|||||
37 | Hash - Как правильно солить пароли |
|
|||
На этом уроке мы поговорим о вариантах хеширования паролей пользователей для дополнительной безопасности. Посмотрим, сколько времени занимает хеширование пароля, воспользовавшись встроенной системой профилирования. Отчёт отправил: 8275. Tekashnik Выполнено за 35 мин. [Показать отчёт] Научился: Разбираться как работает функция хэширования в yii Сложности: Ждать когда закончится хэширование с ценой в 25 (Около 34 минут, я не дожлался) Комментарии: Ещё ставил на 20, чтобы за минуту сработало, база данных сругалась на таймаут |
|||||
38 | Remember me - Печенька на память |
|
|||
На этом уроке мы поговорим о галочке «Запомнить меня» для авторизации на месяц — чтобы сайт не просил повторно вводить логин/пароль даже после закрытия/открытия браузера. Отчёт отправил: 8275. Tekashnik Выполнено за 25 мин. [Показать отчёт] Научился: Активировать функцию автологин для повторного входа Сложности: Понять как работают методы класса UserIdentity Комментарии: А насколько это трудоёмкая задача без использования фреймворка? |
|||||
39 | Authokey - Ключи в сейфе |
|
|||
На этом уроке мы реализуем более безопасный способ автоматической авторизации на сайте. Для этого мы создадим отдельное поле 'authokey', в нашей БД, для автологина. Отчёт отправил: 8275. Tekashnik Выполнено за 47 мин. [Показать отчёт] Научился: Создавать новое поле в БД с помощью миграции Надеемся на продолжение этого увлекательного и захватывающего курса)) Сложности: Осознать, какой колосальный объём работ нужно было бы выполнить без yii Комментарии: Надеемся на продолжение этого увлекательного и захватывающего курса)) |
|||||
40 | REFRESH - 40 МГНОВЕНИЙ ОПЫТА |
|
|||
На этом финальном уроке тебе предстоит повторить весь курс ещё раз. Да, ты не ослышался - выполнить все шаги по созданию этого проекта. Чтобы было удобнее - скачай план уроков всего курса. Уверен, ты сможешь всё сделать самостоятельно, причём, значительно быстрее. Лучше всего это сделать на другом компьютере. Отчёт отправил: 8275. Tekashnik Выполнено за 6 час. 27 мин. [Показать отчёт] Научился: Делать проект заново Сложности: Сделать всё по памяти Комментарии: Это было непросто, мне лично пришлось очень часто подсматривать в старый код, потому что конструкции конфигурационных файлов для меня пока не очень понятны. Думаю чтобы всё это отлетало от пальцев нужно 41, 42, 43, 44, 45, 46, 47, 48 урок сделать по повтору прохождения данного курса. Вообще идея очень хорошая, но думаю у многих на это практически нет времени. |
|||||
Итого: 40 видеоуроков |
7 час. 42 мин. 9 тестов |
5 чел. | |||
Финалисты: Иван Воронин, Tekashnik, Семен, Александр, Tom . |