Практика 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...
Большое Вам спасибо !
Пожалуйста 🙂
Спасибо за новое видео!
Пожалуйста)
Спасибо за отличный урок!
Всегда пожалуйста)
Очень круто! Спасибо за урок👍
Пожалуйста ;)
очень интересный урок, спасибо!
Пожалуйста 😉
Напрасно автор вплёл сюда api. Я вообще ни чего не понял, думаю что не только я. Поэтому и комментов мало. А когда не понятно, то пропадает интерес. До api всё было очень даже понятно. Моё мнение нужно или подробнее объяснить, либо вообще не упоминать. Я не критикую, просто я так думаю! Наверно и автору интересно как люди думают! )
Возможно) Хотя как тогда объяснить, что комментов к предыдущим урокам примерно столько же?)) На самом деле людям просто лень написать комментарий. Да многим лень даже лайк прожать, что уж говорить о комментарии. Поэтому, как мне кажется, ваша версия не очень подходит ;)
За комментарий и мнений в любом случае благодарен 😉
Исходники к уроку - github.com/matroskin978/phpbeginners/tree/93885d7ee159544e3a66e66e24212f5b5eb11dd3
Здраствуйте ,я хочу разместить сайт ,на базе вашего проекта, разместить на хостинге,
а при использовании Composera надо производить какие либо дополнительные настройки ????
Здравствуйте!
Не нужно. Просто переносите готовый проект на хостинг и меняете настройки подключения к БД.
@@matroskin978 Спасибо буду пробовать !!!
Отличный урок.
А как лучше реализовать Валидацию в 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 Точно, Сессия мне в помощь. Спасибо огромное
У меня возник вопрос а как тогда получить данные если используется ajax на стороне клиента , это касательно удаления? Тогда нет никакой формы
Для запросов AJAX совсем не обязательно наличие формы. Запрос можно инициировать в JS по любому событию: клик по элементу, изменение элемента, скролл страницы... Сам AJAX отправляется нужным методом и с нужным набором данных. Вот целый плейлист - ua-cam.com/play/PLNvHH49JXUUCUjC9vlxU2JQYlioFFOIOy.html - в нем показано множество запросов AJAX, как с формой, так и без нее.
В том числе там показано и удаление. Удаление без формы с привязкой к клику по элементу. Но при желании можно добавить и форму со скрытыми полями и кнопкой.
@@matroskin978 спасибо