Веб-приложение из одного скрипта маршрутизации: в чем плюсы и минусы? - PullRequest
3 голосов
/ 10 января 2012

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

Однако с такими node.js и Slim (фреймворк PHP) я видел, что у них есть один скрипт маршрутизации.

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

Однако я привык делать то же самое с правилами ReWrite в .htaccess, который снова указывает на несколько сценариев в моем приложении.

Каковы преимущества и недостатки определения ядра вашего веб-приложения одним скриптом?

Ответы [ 3 ]

3 голосов
/ 10 января 2012

Правила перезаписи не переносимы. Они требуют apache и mod_rewrite. Однако для использования маршрутизации на основе php просто необходим веб-сервер, на котором вы можете убедиться, что все запросы проходят через этот скрипт.

2 голосов
/ 10 января 2012

Плюсы:

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

Но основнойодин для меня это:

  • нет отладки внутренних 500 ошибок сервера при заполнении .htaccess

Кстати, техника известна как FrontШаблон проектирования контроллеров .

2 голосов
/ 10 января 2012

Насколько я знаю, есть только плюсы:

  • Хранить только один файл в корне документа (кроме js, css и media)
  • Вам не нужно всегда помнить, чтобы добавить include 'all-pages-setup.php' или что у вас есть на каждую страницу. Вы должны сделать это только один раз (если вам это нужно в данный момент).
  • URL более или менее автоматически становятся красивее.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...