Изначально я скажу, что это зависит от архитектуры / функций вашего приложения и масштаба веб-сайтов, которые вы собираетесь делать ...
Плюсы для одного файла маршрутизации
- Соответствует правилу: проще - всегда - лучше , поэтому, если вам не нужен файл с несколькими маршрутами, просто не надо.
- Несколько файлов могут привести к проблемам коллизий, которые могут быть адом для решения.
- Мой личный опыт: после того, как я сам поработал над домашним веб-приложением, я сохранил только один файл в каталоге приложения.
А как насчет файла множественной маршрутизации?
Однако вы можете найти законное применение для нескольких файлов маршрутизации, если у вас есть разные плагины для обработки типов контента (вики, панель инструментов, галерея ...), и если они автоматически реализуют маршруты (это не изменится с веб-сайта) другому).
В этом случае вы можете использовать небольшой файл специально для каждого плагина, который будет автоматически объединен с файлом маршрутизации приложения (Примечание: как я уже упоминал ранее, при этом вы можете столкнуться с коллизиями маршрутов между файлами),
В своем самодельном приложении я использую это решение для обработки панели бэкэнда (администратора), я «решил» проблему коллизий, резервируя маршрут «/ 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: что вы подразумеваете под "моделями с начальной загрузкой (в случае одного маршрутизатора)?"