Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 为什么使用MVC/路由器_Model View Controller_Url_Router - Fatal编程技术网

Model view controller 为什么使用MVC/路由器

Model view controller 为什么使用MVC/路由器,model-view-controller,url,router,Model View Controller,Url,Router,我试图理解MVC和URL路由背后的概念。我知道把你的代码分开是很好的,因此是MVC,但是我不理解URL路由器背后的想法 在htaccess中没有很多重写规则,而是将所有流量发送到router.php,在这个页面中,我有一个包含页面URL的数组,以及相应的php控制器 为了简单起见,我只包括最终生成输出的控制器,但是在看到许多其他实践之后,我担心我做了一些错误的事情,或者在某些方面做得不好 有人能告诉我,如何做一个好的,但简单的URL路由器?只包含控制器,然后控制器生成输出,可以吗?也许有人有一些

我试图理解MVC和URL路由背后的概念。我知道把你的代码分开是很好的,因此是MVC,但是我不理解URL路由器背后的想法

在htaccess中没有很多重写规则,而是将所有流量发送到router.php,在这个页面中,我有一个包含页面URL的数组,以及相应的php控制器

为了简单起见,我只包括最终生成输出的控制器,但是在看到许多其他实践之后,我担心我做了一些错误的事情,或者在某些方面做得不好

有人能告诉我,如何做一个好的,但简单的URL路由器?只包含控制器,然后控制器生成输出,可以吗?也许有人有一些详细描述主题的信息(初学者可以理解)


提前感谢

有很多方法可以进行URL路由。有些是客户端,如backbone.js,另一些是服务器端。使用.htaccess是一种方法,另一种方法是通过先决条件路径(硬路径或正则表达式)来实现,然后解析并确定将其发送到何处。它们没有一个是100%正确或100%错误的,这都是首选项,而且听起来您在处理路由文件方面做得很好


有关不同框架如何进行路由的更多信息,请阅读CodeIgniter和Symfony框架的路由文档,了解两种不同风格的服务器端路由,然后再看看客户端路由的backbone.js框架,看看它们的异同。

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

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

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