Практика PHP для начинающих. Урок 15. Класс маршрутизации Router. Часть 2

Поділитися
Вставка
  • Опубліковано 22 сер 2024
  • В этом видео мы допишем класс маршрутизации - Router. Данный класс теперь сможет принимать запросы не только стандартными методами GET и POST, но и методами RESTfull API, например методом DELETE для удаления ресурса. Также из урока вы узнаете, как эмулировать при отправке формы нестандартные методы запроса. Ну и, наконец, вы узнаете, как принимать одновременно запросы к стандартной части приложения и к API части приложения.
    Данная серия уроков предназначена для начинающих программистов на PHP и веб-разработчиков. Цель предлагаемых уроков - научить писать правильный и красивый код, а также показать основные методики написания структурированного кода. В этих уроках будут затронуты такие темы как:
    - Как отделить логику от представления.
    - Как избежать дублирования кода.
    - Что такое Router (маршрутизатор) и как написать собственный класс Router.
    - Как работать с базой данных (БД), используя PDO и как написать свой класс для работы с БД.
    - Что такое Service Container и как написать свой Service Container.
    - Что такое Middleware и как написать свой Middleware.
    - и т.д.
    Исходники к уроку - github.com/mat...

КОМЕНТАРІ • 22

  • @Antonio1reb
    @Antonio1reb 10 місяців тому

    Большое Вам спасибо !

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

    Спасибо за новое видео!

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

    Спасибо за отличный урок!

  • @screomyscreomy6714
    @screomyscreomy6714 6 місяців тому

    Очень круто! Спасибо за урок👍

  • @user-gd4ie3ux4u
    @user-gd4ie3ux4u Рік тому

    очень интересный урок, спасибо!

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

    Напрасно автор вплёл сюда api. Я вообще ни чего не понял, думаю что не только я. Поэтому и комментов мало. А когда не понятно, то пропадает интерес. До api всё было очень даже понятно. Моё мнение нужно или подробнее объяснить, либо вообще не упоминать. Я не критикую, просто я так думаю! Наверно и автору интересно как люди думают! )

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

      Возможно) Хотя как тогда объяснить, что комментов к предыдущим урокам примерно столько же?)) На самом деле людям просто лень написать комментарий. Да многим лень даже лайк прожать, что уж говорить о комментарии. Поэтому, как мне кажется, ваша версия не очень подходит ;)
      За комментарий и мнений в любом случае благодарен 😉

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

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

  • @phpstudy8625
    @phpstudy8625 3 місяці тому

    Здраствуйте ,я хочу разместить сайт ,на базе вашего проекта, разместить на хостинге,
    а при использовании Composera надо производить какие либо дополнительные настройки ????

    • @matroskin978
      @matroskin978  3 місяці тому

      Здравствуйте!
      Не нужно. Просто переносите готовый проект на хостинг и меняете настройки подключения к БД.

    • @phpstudy8625
      @phpstudy8625 3 місяці тому

      @@matroskin978 Спасибо буду пробовать !!!

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

    Отличный урок.
    А как лучше реализовать Валидацию в Update?
    Я сделал просто контроллер UPDATE.php и edit.tpl.php - форму в которой подтягиваются данные конкретного поста.
    Но, как вывести ошибки валидации не понимаю. По идее как то нужно возвращать юзера на форму, в именно reguire VIEWS . 'edit.tpl.php'. Но как туда передать ошибки валидации, ума не приложу (((
    В итоге сделал просто redirect. Но ошибок валидации там нет (((
    if(!$validation->hasErrors()){
    if($db->query("UPDATE posts SET title = ?, excerpt = ?, content = ? WHERE id = ?", [
    $data['title'], $data['excerpt'], $data['content'], $id])){
    $_SESSION['success'] = 'Post updated DB!';
    }else{
    $_SESSION['error'] = 'DB Error!';
    redirect("/posts/edit?id={$id}"); // вот тут просто делаю редирект
    }
    redirect('/');
    }else{
    $_SESSION['error'] = 'DB Error!';
    redirect("/posts/edit?id={$id}");
    }

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

      При редиректе все данные сбрасываются. Поэтому, чтобы использовать их после редиректа - нужно записать их в сессию, откуда и забирать потом.

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

      @@matroskin978 Точно, Сессия мне в помощь. Спасибо огромное

  • @xqz666
    @xqz666 6 місяців тому

    У меня возник вопрос а как тогда получить данные если используется ajax на стороне клиента , это касательно удаления? Тогда нет никакой формы

    • @matroskin978
      @matroskin978  6 місяців тому +1

      Для запросов AJAX совсем не обязательно наличие формы. Запрос можно инициировать в JS по любому событию: клик по элементу, изменение элемента, скролл страницы... Сам AJAX отправляется нужным методом и с нужным набором данных. Вот целый плейлист - ua-cam.com/play/PLNvHH49JXUUCUjC9vlxU2JQYlioFFOIOy.html - в нем показано множество запросов AJAX, как с формой, так и без нее.
      В том числе там показано и удаление. Удаление без формы с привязкой к клику по элементу. Но при желании можно добавить и форму со скрытыми полями и кнопкой.

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

      @@matroskin978 спасибо