@NordNerd

Как правильно организовать систему контроллеров в mvc паттерне?

Всем добрый день!

Вопрос к знатокам паттерна mvc. Прочёл несколько статей и учебных материалов по этому паттерну - в теории всё довольно стройно выходит, но на практике возникают вопросы. Вот, например, цитата из статьи на хабре:


Например: example.ru/contacts/feedback

С помощью функции explode производится разделение адреса на составляющие. В результате мы получаем имя контроллера, для приведенного примера, это контроллер contacts и имя действия, в нашем случае — feedback.


А как быть, если составляющих несколько? Например, такая ссылка:
sitename.com/shop/notebooks_and_computers/notebooks/1234

Т.е., по идее, пользователь должен увидеть страницу с ноутбуком №1234, но что здесь полагать контроллером, а что действием? Или контроллеров может быть несколько вложенных?
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
К сожалению, плохих статей в интернете куда больше чем хороших.
Вот эта, например, вводит совершенно ненужную конструкцию, завязывая зачем-то внутреннюю структуру приложения на структуру НТТР запроса. Хотя разумеется они вообще никак не связаны.
Вам надо просто уйти от этой дурацкой схемы имя/действие/операнд. В реальности так никто не делает.
Если бы адресация любого приложения могла вписываться в эту схему, то отдельный роутинг был бы просто не нужен. Да, для некоторых контроллеров это годится. Для других - нет. И при этом внутренняя структура приложения может вообще ничего общего не иметь с порядком ключевых слов в НТТР запросе.

В данном случае notebooks_and_computers/notebooks - это просто SEO мусор, который вообще не нужен для отображения товара. Для которого нужен только айди товара. Ну вот и запускается контроллер витрины с экшеном отображения карточки товара.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы