Практика PHP для начинающих. Урок 14. Класс маршрутизации Router. Часть 1
Вставка
- Опубліковано 19 тра 2023
- В этом видео мы приступим к написанию класса маршрутизации - класса Router. Данный класс должен уметь не только понимать запрос по его адресу, но и по методу, которым был запрошен этот адрес. Проще говоря, один и тот же адрес, запрошенный разными методами, может быть обработан разными контроллерами. Таким образом, нам маршрутизатор будет следовать правилам REST API и сможет принимать запросы не только методами GET и POST, но и такими методами, как DELETE или PUT, к примеру.
Данная серия уроков предназначена для начинающих программистов на PHP и веб-разработчиков. Цель предлагаемых уроков - научить писать правильный и красивый код, а также показать основные методики написания структурированного кода. В этих уроках будут затронуты такие темы как:
- Как отделить логику от представления.
- Как избежать дублирования кода.
- Что такое Router (маршрутизатор) и как написать собственный класс Router.
- Как работать с базой данных (БД), используя PDO и как написать свой класс для работы с БД.
- Что такое Service Container и как написать свой Service Container.
- Что такое Middleware и как написать свой Middleware.
- и т.д.
Исходники к уроку - github.com/matroskin978/phpbe...
Спасибо. Отличное видео.
Всё понятно и очень подробно!
Пожалуйста ;)
Спасибо!
Пожалуйста.
Ура!🎉 Продолжение вышло. Я так и понял, что это будет микрофреймворк. Круто.
С голосом только некоторые проблемы. Тяжело еще говорить после болезни.
@@matroskin978Выздоравливайте ! Здоровья вам. Не последствия ковида? Я надеюсь, ничего серьезного?
@@_slash_- какой-то вирус гриппоподобный... уже намного лучше, спасибо 🙂
Спасибо за Ваш труд!
Хотелось такой же подробный курс от Вас по ООП или большему фрейморку ларавел, симфони)
Пожалуйста)
По ООП готовлю курс. По Laravel пока в планах.
Исходники к уроку - github.com/matroskin978/phpbeginners/tree/d19a32ae78997d2be9fbfe233152eeb13f2813bb
Спасибо за новый ролик. Только база почему-то так не подключается.
А Вы видео до конца досмотрели?)) У меня также на 30-ой минуте есть проблема с подключением к БД. И вот примерно с 30-ой минуты я и объясняю причину этой проблемы, а также возможный вариант исправления этой проблемы. После этого с подключением к БД у меня проблемы нет. Поэтому, если Ваш код аналогичен моему, то и у Вас проблемы такой быть не должно.
Здравствуйте! Почему-то страницу с posts не видит и ошибок не выдает, как в action добавил posts, посоветуйте, пожалуйста, с чего нужно начать поиск проблемы? Видео 10 раз пересмотрел.
Здравствуйте!
Сложно сказать. Но проблема однозначно где-то в коде, который отличается от урока. Поэтому нужно сравнивать ваш код с кодом из исходников. Или просто можете взять код из исходников и использовать его, чтобы убедиться, что все работает.
Слова "много раз пересмотрел", "код точно такой, как у вас", поверьте, я слышал множество раз. Но когда начинаешь смотреть код, то находишь ошибку здесь и вот тут, и еще вот там)) Поэтому попробуйте просто взять код из исходников для начала и проверить на нем, чтобы увидеть, что проблемы нет. Это должно убедить вас, что проблема где-то в вашем коде, которую нужно искать и исправлять.
@@matroskin978 Здравствуйте! После ваши слов, перебрал весь проект и вы оказались правы. Смотрю на ваш код и на свой, не нахожу отличий, и только когда взял ваш код, вставил в свой, увидел (Cлеш поставил ненужный в файле routes.php : $router->post('posts/', 'posts/store.php') потратил несколько часов.
Единственное не понимаю, зачем создавать матрешку ввиде множестве папок, папка в папке там ещё одна и для двух строк кода создавать отдельные файлы.
Такое ощущение это была большая команда, каждый на своем компе делал папку и потом это всё соединяли и что бы не мучится, решили объявить что это стандарты (а мы мучаемся). Вам ещё раз спасибо, перехожу на следующий урок.
Здравствуйте!
Как и предполагал ;) Пожалуйста)
Такая структура нужна для расширяемости проекта. То, что мы написали в данном цикле уроков - это всего лишь наброски на самом деле. Такой себе каркас. И вот вокруг этого каркаса уже можно пробовать строить реальное приложение. И чтобы все не было в одном файле условно, нужна какая-то упорядоченная организация. Вот это она и есть, по идее :)