【问题标题】:Why use MVC/router为什么使用 MVC/路由器
【发布时间】:2012-02-04 15:36:28
【问题描述】:

我正在尝试理解 MVC 和 URL 路由背后的概念。我知道将您的代码分开是很好的,因此是 MVC,但无法理解 URL 路由器背后的想法!

我没有在 htaccess 中使用大量重写规则,而是将所有流量发送到 router.php,在这个页面中,我有一个包含页面 url 的数组,以及它对应的 PHP 控制器。

为了简单起见,我只包含了最终生成输出的控制器,但是看到很多其他做法,我担心我做错了什么,或者在某些方面不好..

有人可以请教我,如何做一个好的,但简单的 URL 路由器?是否可以只包含控制器,然后生成输出?也许有人有一些详细描述该主题的信息(对于初学者来说是可以理解的)

提前致谢

【问题讨论】:

    标签: model-view-controller url router


    【解决方案1】:

    有很多方法可以进行 URL 路由。有些像backbone.js一样是客户端,有些是服务器端。使用 .htaccess 执行此操作是一种方式,另一种方式是您通过先决条件路径来执行此操作,该路径要么是硬路径,要么是您解析并确定将其发送到何处的正则表达式。它们都不是 100% 正确或 100% 错误,这都是偏好,听起来你对路由文件做得很好。

    有关不同框架如何进行路由的更多信息,您应该阅读有关 CodeIgniter 和 Symfony 框架的路由的文档以查看 2 种不同样式的服务器端路由,然后可能查看用于客户端路由的主干.js 框架只是为了看看相同点和不同点。

    【讨论】:

      【解决方案2】:

      MVC 概念中的路由器决定当用户请求页面时它必须加载哪个控制器。例如。用户请求 example.com/something/very/important,路由器现在将查找映射到此路由的操作并执行它。有不同的方法可以实现(简单的包含、实例化一个类和运行一个方法等),但我想出的最简单且仍然强大的解决方案是为每个操作创建一个单独的类。关于这个问题我写了一篇小文章,因为这个问题我已经被问过好几次了,你可以在这里看看:Writing a simple and fast mvc router with PHP

      【讨论】:

        【解决方案3】:

        ASP.NET 路由模块负责将传入的浏览器请求映射到特定的 MVC 控制器操作。

        路由是一个模式匹配系统,它监控传入的请求并确定如何处理该请求。在运行时,路由引擎使用路由表将传入请求的 URL 模式与路由表中定义的 URL 模式进行匹配。您可以在 Application_Start 事件中将一种或多种 URL 模式注册到路由表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多