Практика 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...

КОМЕНТАРІ • 19

  • @dmitriivanov7010
    @dmitriivanov7010 5 місяців тому

    Спасибо. Отличное видео.
    Всё понятно и очень подробно!

  • @user-wq2xj7pe6t
    @user-wq2xj7pe6t Рік тому +1

    Спасибо!

  • @_slash_-
    @_slash_- Рік тому +1

    Ура!🎉 Продолжение вышло. Я так и понял, что это будет микрофреймворк. Круто.

    • @matroskin978
      @matroskin978  Рік тому

      С голосом только некоторые проблемы. Тяжело еще говорить после болезни.

    • @_slash_-
      @_slash_- Рік тому +1

      ​@@matroskin978Выздоравливайте ! Здоровья вам. Не последствия ковида? Я надеюсь, ничего серьезного?

    • @matroskin978
      @matroskin978  Рік тому +2

      @@_slash_- какой-то вирус гриппоподобный... уже намного лучше, спасибо 🙂

  • @user-gd4ie3ux4u
    @user-gd4ie3ux4u 11 місяців тому +1

    Спасибо за Ваш труд!
    Хотелось такой же подробный курс от Вас по ООП или большему фрейморку ларавел, симфони)

    • @matroskin978
      @matroskin978  11 місяців тому

      Пожалуйста)
      По ООП готовлю курс. По Laravel пока в планах.

  • @matroskin978
    @matroskin978  Рік тому +1

    Исходники к уроку - github.com/matroskin978/phpbeginners/tree/d19a32ae78997d2be9fbfe233152eeb13f2813bb

  • @niks1302
    @niks1302 Рік тому

    Спасибо за новый ролик. Только база почему-то так не подключается.

    • @matroskin978
      @matroskin978  Рік тому +1

      А Вы видео до конца досмотрели?)) У меня также на 30-ой минуте есть проблема с подключением к БД. И вот примерно с 30-ой минуты я и объясняю причину этой проблемы, а также возможный вариант исправления этой проблемы. После этого с подключением к БД у меня проблемы нет. Поэтому, если Ваш код аналогичен моему, то и у Вас проблемы такой быть не должно.

  • @farhad5066
    @farhad5066 Місяць тому

    Здравствуйте! Почему-то страницу с posts не видит и ошибок не выдает, как в action добавил posts, посоветуйте, пожалуйста, с чего нужно начать поиск проблемы? Видео 10 раз пересмотрел.

    • @matroskin978
      @matroskin978  Місяць тому

      Здравствуйте!
      Сложно сказать. Но проблема однозначно где-то в коде, который отличается от урока. Поэтому нужно сравнивать ваш код с кодом из исходников. Или просто можете взять код из исходников и использовать его, чтобы убедиться, что все работает.
      Слова "много раз пересмотрел", "код точно такой, как у вас", поверьте, я слышал множество раз. Но когда начинаешь смотреть код, то находишь ошибку здесь и вот тут, и еще вот там)) Поэтому попробуйте просто взять код из исходников для начала и проверить на нем, чтобы увидеть, что проблемы нет. Это должно убедить вас, что проблема где-то в вашем коде, которую нужно искать и исправлять.

    • @farhad5066
      @farhad5066 Місяць тому

      @@matroskin978 Здравствуйте! После ваши слов, перебрал весь проект и вы оказались правы. Смотрю на ваш код и на свой, не нахожу отличий, и только когда взял ваш код, вставил в свой, увидел (Cлеш поставил ненужный в файле routes.php : $router->post('posts/', 'posts/store.php') потратил несколько часов.
      Единственное не понимаю, зачем создавать матрешку ввиде множестве папок, папка в папке там ещё одна и для двух строк кода создавать отдельные файлы.
      Такое ощущение это была большая команда, каждый на своем компе делал папку и потом это всё соединяли и что бы не мучится, решили объявить что это стандарты (а мы мучаемся). Вам ещё раз спасибо, перехожу на следующий урок.

    • @matroskin978
      @matroskin978  29 днів тому

      Здравствуйте!
      Как и предполагал ;) Пожалуйста)
      Такая структура нужна для расширяемости проекта. То, что мы написали в данном цикле уроков - это всего лишь наброски на самом деле. Такой себе каркас. И вот вокруг этого каркаса уже можно пробовать строить реальное приложение. И чтобы все не было в одном файле условно, нужна какая-то упорядоченная организация. Вот это она и есть, по идее :)