Преимущества использования нескольких маршрутизаторов? - PullRequest
6 голосов
/ 13 августа 2011

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

Например, если вам нужно было создать приложение, включающее вики, панель инструментов (и настройки), а также игру с использованием данных вики, следует ли вам использовать только один маршрутизатор с множеством маршрутов? или вы должны разделить приложение на небольшие подпрограммы со своими собственными контроллерами?

Как в обоих случаях решить проблему с i18n? и загруженные загруженные модели (в случае одного маршрутизатора)?

1 Ответ

1 голос
/ 23 августа 2011

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

Плюсы для одного файла маршрутизации

  • Соответствует правилу: проще - всегда - лучше , поэтому, если вам не нужен файл с несколькими маршрутами, просто не надо.
  • Несколько файлов могут привести к проблемам коллизий, которые могут быть адом для решения.
  • Мой личный опыт: после того, как я сам поработал над домашним веб-приложением, я сохранил только один файл в каталоге приложения.

А как насчет файла множественной маршрутизации?

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

В этом случае вы можете использовать небольшой файл специально для каждого плагина, который будет автоматически объединен с файлом маршрутизации приложения (Примечание: как я уже упоминал ранее, при этом вы можете столкнуться с коллизиями маршрутов между файлами), В своем самодельном приложении я использую это решение для обработки панели бэкэнда (администратора), я «решил» проблему коллизий, резервируя маршрут «/ admin /» для бэкэнда, после чего все маршруты плагина получают префикс с ним.

Пример PHP-Framework Symfony

Не воспринимайте следующее как «вы должны делать это так», но вы можете посмотреть, как это делается в Symfony, здесь: http://www.symfony -project.org / book / 1_2 / 09-Links-and -The-Routing-System

# default rules
homepage:
  url:   /
  param: { module: default, action: index }

default_symfony:
  url:   /symfony/:action/*
  param: { module: default }

default_index:
  url:   /:module
  param: { action: index }

default:
  url:   /:module/:action/*

I18n

Готовы ли вы переводить URL-адреса? Если да, запомните мне более простое-лучшее утверждение. Вам это действительно нужно? Я знаю, что это может дать вам некоторое повышение SEO, но я не думаю, что это стоит того. В этом случае вы можете использовать 1 файл для каждого языка на приложение.

PS: что вы подразумеваете под "моделями с начальной загрузкой (в случае одного маршрутизатора)?"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...