使用多个路由器的优点?

时间:2011-08-12 21:43:33

标签: internationalization backbone.js

我开始逐步构建我的Web应用程序,将路由和其他路由添加到路由器。该应用程序不是单页面应用程序,因为它提供了相对独立的功能。

例如,如果你必须构建一个包含wiki,仪表板(和设置)的应用程序,以及使用wiki数据的游戏,你应该只使用一个路由多的路由器吗?或者您应该将应用程序拆分为具有自己的控制器的小型子应用程序吗?

在这两种情况下,如何处理i18n的问题?和加载的自举模型(如果是单个路由器)?

1 个答案:

答案 0 :(得分:1)

最初,我会说这取决于您的应用程序架构/功能以及您要执行的网站规模......

单个路由文件的优点

  • 遵守规则:更简单 - 更好 - ,所以如果你真的不需要多个路由文件,那就不要。
  • 多个文件可能会导致可能无法解决的碰撞问题。
  • 我的个人经历,在自己使用自制网络应用程序后,我只在应用程序目录中保留了一个文件。

但是多路由文件呢?

如果您有不同的插件来处理内容类型(wiki,仪表板,图库...),并且它们是否自动实现路由(不会从网站更改),您可以找到多个路由文件的合法用法到另一个)。

在这种情况下,您可以专门为每个插件使用小文件,这些插件将自动合并到应用程序路由文件(注意:正如我之前提到的,这样做可能会遇到文件之间的路径冲突)。 在我自制的应用程序中,我正在使用此解决方案来处理后端(管理)面板,我“解决”了碰撞问题,通过为后端保留“/ admin /”路由,然后所有插件的路由都以它为前缀。 / p>

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

你愿意翻译网址吗? 如果是的话,请记住我更简单 - 更好的陈述。你真的需要它吗?我知道它可能会给你一些SEO提升,但我认为这不值得挤压。 在这种情况下,每个应用程序可以使用每种语言1个文件。

PS:“引导模型(单个路由器的情况下)是什么意思?”