Зачем использовать MVC / роутер - PullRequest
3 голосов
/ 04 февраля 2012

Я пытаюсь понять концепцию MVC и URL-маршрутизации. Я понимаю, что хорошо разделять ваш код, отсюда и MVC, но не понимаю идеи, стоящей за URL-маршрутизатором!

Вместо большого количества правил перезаписи в htaccess, я отправляю весь трафик на router.php, и на этой странице у меня есть массив с URL-адресами страниц и соответствующим контроллером PHP.

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

Может кто-нибудь, пожалуйста, просветите меня, как сделать хороший, но простой URL-маршрутизатор? Можно ли просто включить контроллер, который затем генерирует вывод? Возможно, у кого-то есть какая-то информация, которая подробно описывает предмет (что-то понятное для новичка)

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 04 февраля 2012

Есть много способов сделать URL-маршрутизацию. Некоторые из них на стороне клиента, как с backbone.js, другие на стороне сервера. Выполнение этого с помощью .htaccess - это один из способов, другой способ, которым вы делаете это, имея обязательный путь, который является либо жестким путем, либо регулярным выражением, которое вы анализируете и выясняете, куда его отправить. Ни один из них не является на 100% правильным или на 100% неправильным, все это предпочтения, и, похоже, у вас все в порядке с файлом маршрута.

Для получения дополнительной информации о том, как разные фреймворки выполняют маршрутизацию, вы должны прочитать документы по маршрутизации для CodeIgniter и фреймворки Symfony, чтобы увидеть 2 различных стиля маршрутизации на стороне сервера, а затем, возможно, взглянуть на каркас backbone.js для маршрутизации на стороне клиента. просто чтобы увидеть сходства и различия.

2 голосов
/ 05 февраля 2012

Маршрутизатор в концепции MVC решает, какой контроллер он должен загрузить, когда пользователь запрашивает страницу. Например. пользователь запрашивает example.com/something/very/important, теперь маршрутизатор будет искать действие, сопоставленное с этим маршрутом, и выполнять его. Существуют различные методы, позволяющие это сделать (простое включение, создание экземпляра класса, запуск метода и т. Д.), Но самое простое и все же мощное решение, которое я придумал, - это создание отдельного класса для каждого действия. Я написал небольшую статью по этому вопросу, так как мне задавали этот вопрос несколько раз, вы можете посмотреть его здесь: Написание простого и быстрого маршрутизатора MVC с PHP

1 голос
/ 29 мая 2013

Модуль маршрутизации ASP.NET отвечает за сопоставление входящих запросов браузера с конкретными действиями контроллера MVC.

Маршрутизация - это система сопоставления с образцом, которая отслеживает входящий запрос и выясняет, что делать с этим запросом. Во время выполнения механизм маршрутизации использует таблицу маршрутов для сопоставления шаблона URL-адреса входящего запроса с шаблонами URL-адресов, определенными в таблице маршрутов. Вы можете зарегистрировать один или несколько шаблонов URL в таблице маршрутов в событии Application_Start.

...