PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post Reply
btr
Posts: 197
Joined: Thu Feb 11, 2021 7:04 am

PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by btr »

Добрый день.
Почему бы не сделать подобное?
К примеру в конфиге nginx добавляем try_files $uri /route.php?$args;
а в route.php уже обрабатываем все, в зависимости от того какие пути (для категорий, тумб, поиска и тд) прописаны в настройках.
Это бы облегчило работу для тех кто не шарит в реврайтах, а так же сократило время настройки скрипта(пути нужно прописать только в настройках скрипта).
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by admin »

Приветствую!

да, идея на поверхности

вопрос в том, что

1. если не в реврайтах то в пхп надо прописывать = надо шарить в пхп / регэкспах
2. любой файл которого нет - будет дергать скрипт = больше нагрузки

в чем смысл тогда выносить в пхп если какие-то спец знания для роутинга все равно надо, а отсутствующий например файл иконки - будет дергать скрипт?
Don't forget to run script update
btr
Posts: 197
Joined: Thu Feb 11, 2021 7:04 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by btr »

Настраивать можно и в админке, знание регэкспа не обязательно, шаблонизатор можно использовать.
к примеру что то типа такого:
/$name_cat/$num_cat/ - для категорий
/$name_tag/$num_tag/ - для тегов
/$name_content/$content.html - для страницы с контентом (в нашем случае страницы с видео).
и тд.
файл иконки можно и в исключения добавить.
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by admin »

откуда знать что "/$name_cat/$num_cat/ " это для категорий например?
как в этой ситуации например прописать /category/list/ - хочу что б было &force_template=category_list ?



"файл иконки можно и в исключения добавить."

исключения где? в скрипте?
так любой пропущенный файл, тумба, что угодно , любой косяк в дизайне = нагрузка на скрипт, когда мы поднимаем весь фреймворк что б разобраться надо ли на это что-то отвечать
в текущей ситуации у нас 404 выдает nginx и все , никакой нагрузки
Don't forget to run script update
btr
Posts: 197
Joined: Thu Feb 11, 2021 7:04 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by btr »

"откуда знать что "/$name_cat/$num_cat/ " это для категорий например?"
шаблон я привел как пример, он может выглядеть и по другому, задается переменная в админке для поиска к примеру $search_cat,
в роутере что то типа такого разбирает нужный url:
if(preg_match('/^\/'.$search_cat.'\/.+\/.*$/',$url) == TRUE)
{
include('search.php');
}
"как в этой ситуации например прописать /category/list/ - хочу что б было &force_template=category_list ?"
для листинга категорий можно задать в админке отдельную переменную, в которой и пропишется путь.

по поводу нагрузки, я не силен в кодинге, но на сколько знаю, основная нагрузка идет от запросов к базе, думаете если на входе будет ~5-10 регулярок preg_match, это сильно нагрузит скрипт?
И да, в маршрутизаторе не нужно же "поднимать весь фреймворк", достаточно проверить совпадение нужного нам url, если совпал инклудим нужную нам часть, если не одно условие не совпало, отдаем тупо 404.
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by admin »

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

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

поднимать фесь фрем ворк - да, это значит загрузить либы скрипта, это занимает какое-то время и сильно больше чем проверяет 404 апач

и самое главное - я так и не понял, зачем уходить от реврайтов? что они не дают сделать, что можно сделать на роутере?
Don't forget to run script update
btr
Posts: 197
Joined: Thu Feb 11, 2021 7:04 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by btr »

У меня доводы кончились.
Нет так нет. )
admin
Site Admin
Posts: 37233
Joined: Wed Sep 10, 2008 11:43 am

Re: PHP маршрутизатор(роутер) вместо десятков реврайтов.

Post by admin »

Думаю намного проще напистаь админу "пропишите мне такой то реврайт" чем устраивать танцы с бубном пытаясь уложить все варианты реврайта в какую-то админку)
Don't forget to run script update
Post Reply