Создание собственного PHP MVC фреймворка на ООП. 3. Класс Router
Вставка
- Опубліковано 11 вер 2024
- В этом уроке мы приступим к написанию класса Router, задача которого состоит в маршрутизации запроса, т.е. в том, чтобы проверить соответствие маршрута с таблицей маршрутов и, если таковое есть, то передать маршру на обработку дальше или сразу вернуть ответ на запрос.
Исходники к уроку - github.com/mat...
💖 Поддержка канала
www.donational...
5168 7574 1613 9071 (ПриватБанк)
matroskin978@gmail.com (PayPal)
TXGoBr7UrwRUYx7FpzbiG8znkgC6fhwtEF (USDT TRC20)
410014621600849 (ЮMoney)
===============================================
Мои курсы на Udemy
Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)
Курс "PHP 8. ООП. Создание собственного PHP MVC фреймворка":
www.udemy.com/...
Курс по созданию интернет-магазина и веб-приложений в Telegram - www.udemy.com/...
Курс по созданию собственного шаблона интернет-магазина для OpenCart 3 - www.udemy.com/...
Курс по PHP - www.udemy.com/...
СУБД MySQL и язык запросов SQL. Теория и практика - www.udemy.com/...
💖 Поддержка канала
www.donationalerts.com/r/matroskin978
4731 2196 5549 6408 (ПриватБанк)
matroskin978@gmail.com (PayPal)
TXGoBr7UrwRUYx7FpzbiG8znkgC6fhwtEF (USDT TRC20)
410014621600849 (ЮMoney)
===============================================
Мои курсы на Udemy
Не получается приобрести курс или нужна скидка - обращайтесь. Решим :)
Курс "PHP 8. ООП. Создание собственного PHP MVC фреймворка":
www.udemy.com/course/php-8-framework/?referralCode=1D29D8356C893C7889B3
Курс по созданию интернет-магазина и веб-приложений в Telegram - www.udemy.com/course/telegram-bots-web-apps/?referralCode=A574DFE059CF9FF4E002
Курс по созданию собственного шаблона интернет-магазина для OpenCart 3 - www.udemy.com/course/opencart-3/?referralCode=96BAF7C78DF57D6A90CA
Курс по PHP - www.udemy.com/course/php-8-ua/?referralCode=4DAAEA9CF6ADF447D879
СУБД MySQL и язык запросов SQL. Теория и практика - www.udemy.com/course/mysql-sql/?referralCode=B6655F05D32032D80C0B
Пока до конца архитектуру приложения, что в конечном итоге делает каждый класс и для чего, трудно уловить, но некая картина потихоньку складывается. Не пожалел, что начал вплотную писать код по вашим урокам. Только в данном случае я от себя добавляю комментарии к коду, чтобы в будущем можно было менять структуру приложения под свои нужды, ну и просто запоминаю наиболее важные приёмы, а здесь ООП нужно знать обязательно. Это я пишу тем, кто сталкивается с некими трудностями =) Я сам, если что непонятно, лезу в интернет или в книги xD От меня, как всегда, лайк.
@@user-rr1oo1dj2l благодарю 🙂
Андрей огромное спасибо за ваши уроки все четко и понятно!!!
обошли все блокировки и смотрим на ютубе)))))
@@user-th4gy4sz8j супер! И правильно сделали 😎
Пожалуйста 😉
Андрію, дякую за відео )
Кілька пропозицій які теми ще були б корисними, можливо якісь захочете освітити в цьому плей-листі:
1. Redis для реалізації кешу
2. Elasticsearch для реалізації пошуку
@@mr_riabov будь ласка 🙂
Якщо буде час та натхнення - за теми подумаю)
Как обычно, отличный урок! Спасибо
Пожалуйста 😉
Я рhp толком не знаю а тут уже фреймворк пишем) Спасибо! Лайк на канал подписан!
@@progerlife6690 пожалуйста 😉
Добрый день. Спасибо за видео. Почему вы twig не используете?
@@user-im6ss6uv9g Добрый день! Пожалуйста)
PHP сам по себе неплохой шаблонизатор, поэтому не использую.
❤🔥❤🔥❤🔥❤🔥❤🔥
Продолжаем... 👨💻
Приятного просмотра)
8:41 в месте где вы добавляете маршрут для главной страницы, мой редактор почему советует объявлять именно статическую функцию, а не просто функцию. Пишет следующее: This closure can be declared as static (better scoping; in some cases can improve performance). К сожалению в интернете не получилось найти информацию о том, в каких случаях это будет лучше для производительности.
т.е. он советует написать как-то так?
Router::add();
Возможно. Хотя как это улучшит производительность - вопрос) Задача метода add() - всего-то добавить в массив новые данные. Добавить это через метод объекта или через метод класса - не вижу принципиальной разницы в производительности. Поэтому оставлю, как есть)
@@matroskin978 вот так
$app->router->add('/', static function() {
}, ['post', 'get']);
Понял. Можете последовать рекомендации, но в нашем случае большого смысла в этом не будет. Рекомендуемая возможность нужна для того, чтобы предотвратить связывание замыкания с классом. У нас этого связывания нет в любом случае, как мне кажется, поэтому и смысла особого нет.
Подскажите пожалуйста, как с Вами связаться для покупки курса?
Напишите мне на matroskin978@gmail.com
КАИФ)))
Будете в рамках фреймворка писать свой di контейнер?)
Нет.
Добрый день, что думаете о создании телеграм канала и дублировать туда?
Добрый день!
Уже отвечал в комментариях к предыдущему уроку. Это все время. Я практически ничего с UA-cam не получаю, записывая видео больше в качестве хобби. Ну а с ТГ я и вовсе ничего получать не буду, а времени на выкладывание будет уходить еще больше. Профита при этом -ноль. Почему вы не хотите использовать VPN? Этот вариант предлагался и в комментах к предыдущим видео.
@@matroskin978 Я сам то обошел ограничение, это было просто предложение)
@@user-yp7gw1tq1l понял. Отлично! Ну а я вот другим пользователям пытаюсь предлагать обойти ограничения, но что-то как-то туго идет 🤔
@@matroskin978 а про какое дополнительное время идёт речь? В телегераме просто перетаскиваешь видео в канал/группу, нажал кнопку отправить и забыл))
@@paldeflex на это все не тратится ни единой секунды? Или все же тратится? Если тратится, тогда вот и ответ на ваш вопрос. К слову, я на ваши вопросы отвечаю, а вы на мой до сих пор не ответили...
Андрей, нужно уже переходить на фреймворки, к примеру Nuxt. Ведь не удобно писать клиентскую часть на пхп и особо не интересно. На пхп писать только сервер. Просмотры может быть поднимутся.
Так я ведь и не пишу клиентскую часть на PHP. Только серверную. То, что в шаблонах может быть немного логики на PHP в виде циклов, то это совсем не значит, что она на PHP написана. Ну а для динамики в клиентской части мне вполне хватает нативного JS. Использовать для этого JS-фреймворки мне как раз не очень интересно. Помнится, пробовал Angular, когда он еще популярен был. Попробовал, поигрался - не понравилось.
@@matroskin978 Ангулар это шляпа полная. Попробуйте Vue, Nuxt 3
Вы упорно предлагаете мне стать фронтендером))
@@matroskin978 по поводу фронтенд фреймворков тоже такая мысль проскользнула, вот тоже вроде пытаюсь использовать React, но каких то преимуществ перед чистым JavaScript я не вижу. Я так то решил развиваться в сторону веб-технологий и машинного обучения, но немного касаюсь вопросов разработки компьютерных игр. Так как вижу возможности развития в вебе, интересно было, как создают браузерные 2d и 3d компьютерные игры. Естественно, используется html (canvas) и javascript. Вот, думаю, там фреймворки и 3d движки для создания компьютерных игр, которые запускаются прямо в браузере, имеет смысл. Видел ролики в youtube, как один англоязычный программист воссоздал старенькую игру super mario bros, но он использовал самописный вариант javascript. Но сейчас многие студии. у которых нет издателя, используют готовые движки, чтобы делать современные игры в жанре RPG, платформеры и т.д. Повторюсь, я сам в вебе решил развиваться в сторону создания приложений, но темой игр немножко интересуюсь иногда. Такие вот у меня мыслишки=)))