Создание собственного фреймворка на php с нуля. Класс Router. Урок 2

preview_player
Показать описание

Приветствую вас, друзья. Продолжим создание собственного PHP фреймворка.

По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В этом уроке мы в целом завершим писать класс Router, который будет отвечать за маршрутизацию во фреймворке.

Также мы напишем черновой вариант функции автозагрузки, которая избавит нас от необходимости подключать каждый класс и будет делать это за нас.

В видео версии урока вы найдете ответы на такие вопросы:

• Как использовать регулярные выражения для маршрутизации?
• Именования и стандарты PSR?
• Чем может быть полезен стандарт комментирования PHPDoc?
• Как написать функцию автозагрузки классов?
• Как описать кастомное правило маршрутизации?

Рекомендации по теме
Комментарии
Автор

Спасибо ОГРОМНОЕ ЗА УРОКИ!!!! Вы самый лучший Продолжайте в том же

eduard
Автор

00:00 пояснение про "дефолтные правила" (Router:add(...)) в файле index.php
03:03 начинаем добавлять эти самые "дефолтные правила" (Router:add(...)) в файл index.php
05:50 переписываем метод matchRoute в файле Router.php под новые "дефолтные правила" (Router:add(...)) в файле index.php
06:55 прелюдия к методу dispatch
14:24 пишем непосредственно метод dispatch
18:25
22:27
25:17 upperCamelCase
42:04 Автозагрузка

webmaster
Автор

Очень полезный курс. Я тут yii2 немного понял, стал делать простенькие приложения и стал чувствовать себя разрабом. После просмотров 2 роликов данного курса - это чувство исчезло))

mihailmcnamara
Автор

Спасибо! очень интересно! Пожалуйста, продолжайте!

DrTopk
Автор

Вот это тема! Вот это молодец, спасибо! Один из немногих кто преподаёт нормальные вещи в виде ООП с MVC, автолоадером и рутами! А не всякие отсталые процедурные простыни инклудов через if(get == ) elseif -__-
Замучу себе на гитхап на всякий слу44.!
Осталось ещё добавить видео как сделать свой шаблонизатор и виджеты для него!

acerlmt
Автор

Действительно, очень увлекает! Андрей, продолжайте.... Надеюсь, что дело дойдет и до постраничной навигации, регистрации и авторизации. Лично мне было-бы очень интересно посмотреть на Ваше решение. За уроки огромное спасибо.

delaemsvoisai
Автор

спасибо за отличный материал и за качество его подачи, вы супер.

andreybogdan
Автор

Спасибо! Отличные уроки! Ждем дальнейших лекций!

sergeyvikulov
Автор

Супер, просто супер, жду продолжения.

MrDrumer
Автор

Для проверки работоспособности контроллеров и методов, я бы лучше так сделал. Как-то красивее.
public function __construct()
{
echo 'Контроллер <b>' . __CLASS__ . '</b> подключен<br>';
}

public function index ()
{
echo 'Метод <b>' . __METHOD__ . '</b> вызван<br>';
}

mugen
Автор

Спасибо за видео. С нетерпением жду следующего.

ЕвгенийАндреич-цл
Автор

Спасибо! Очень познавательное видео, особенно заинтересовали регулярные выражения, которые ранее я нигде не использовал. Продолжайте в том же духе! Было бы еще интересно посмотреть, как подключать в адресную строку дополнительные параметры, такие, как язык, роут-префикс (дефольт, админ, эррор и т.д.) и прочие прочие другие.

eXtracker
Автор

Андрей прям ваяет..как Куинджи, творческий подход))

hechnqn
Автор

непонятно, как получаеться так что у автора все работает а у меня нет?

КириллГришин-ил
Автор

Спасибо огромное. Продолжайте дальше!!!

vanya
Автор

Законспектировал для изучения и экспериментов весь проект 1-5 уроки.
У себя вместо файла 404.html после размышления назвал BadFormat.html и сообщение типа "неверный формат строки запроса". А то меня вводит в заблуждение сообщение не найдена страница.
Андрей, Спасибо большое. Мне очень нравится твой стиль
Не знаю, почему так мало просмотров и лайков.

MrForgot
Автор

26:22 я правильно понимаю что когда говорите про регистронезависимость вы имеете ввиду что в каком бы регистре незаписали в адресе в константе "QUERY_STRING"(кажется она так называлась) будет строка в одном регистре?

baurbaur
Автор

Здравствуйте Андрей! Огромное вам спасибо за уроки! Это как раз то, что я искал!!!
А не подскажите, как сделать переход на https?

NibeTN
Автор

спасибо, очень хорошо все дается. Как можно скачать тексты?

vladimirminkin
Автор

в автозагрузке у Вас is_file проверит, является ли $class файлом, но чтобы проверить, существует ли такой файл, то нужно юзать file_exists

ВилыВыкидные-юо