代码之家  ›  专栏  ›  技术社区  ›  danp

MVC基础——I18N和L10N的动态路由

  •  4
  • danp  · 技术社区  · 16 年前

    我最近一直在提高我的web编程技能,以遵循更理智、更易于维护的MVC编码风格。然而,我曾经用我的“roll your own”框架做的一件事是基于mod_rewrite的灵活动态路由。这似乎是cakephp、zend等的一个棘手问题。。它试图复制我拥有的功能,这让我有些头疼。

    在您自己的环境中,您可以执行以下操作:

    <custom htaccess rules before>
    RewriteRule    ^([A-Za-z0-9-/]+)$    index.php?q=$1   [NC,L]
    

    "/abc-123/abc-456/controller-value" 可从数据库表、硬编码、bla bla中设置的任何页面或操作、函数等列表。。以前的自定义规则可以传递服务器上存在的资源文件的匹配请求,或设置管理员路由等。

    必要条件:

    • 没有公开应用程序逻辑
    • 可翻译URL(i18n)

    示例URL:

    /en/news/story-title
    /pt/noticias/titulo
    

    4 回复  |  直到 16 年前
        1
  •  2
  •   Ignas R    16 年前

    MVC只是一种与URL结构无关的架构模式。使用自定义路由层不会以任何方式破坏MVC。例如,如果集中式路由适合您,那么您可以拥有一个配置文件,将URL模式(正则表达式或某种简化语法)映射到控制器操作。

        2
  •  0
  •   Alix Axel    16 年前
        3
  •  0
  •   DanMan    11 年前

    既然你似乎在滚动你自己的MVC,是什么阻止你做你想做的?事实上,我自己在自己的小MVP框架中这样做。

    我只使用域后的第一个段来加载同名控制器(presenter),然后将其余的段和查询字符串作为数组传递给它。然后由每个控制器决定如何处理这些。减去i18n的东西-我半全局地处理它。

    推荐文章