【发布时间】:2010-09-13 13:12:58
【问题描述】:
我有一个奇怪的问题,我一生都无法弄清楚。首先,我从头开发了一个 PHP MVC 框架。我遇到的问题是在 exit() 调用之后我得到了一个标头重定向执行。
这是路由过程的高级视图:
- REQUEST_URI 被剥离,请求的控制器、方法和任何参数都设置为稍后在脚本中使用的变量。
- router.php 检查以确保请求的控制器是否确实存在,如果不存在则返回 false,但如果所有内容都检查,则返回 true
- 如果返回 true,则执行请求的控制器、方法和任何参数。
- 如果它返回 false,那么路由器将发送重定向到自定义 404 页面。这使用了 PHP 的 header() 函数,并且在 header("Location: *"); 之后有一个 exit();
第 4 步是出现问题的地方。请求的控制器存在,因此它被执行,请求的视图存在,因此它正确加载所有内容,但随后它执行重定向,即使在成功加载视图后调用了 exit()。
路由器有什么原因会继续启动并触发重定向吗?
【问题讨论】:
-
首先请贴一些代码,我们没有那么强大的猜测一切。
-
@TomaszKowalczyk 是的。但是,你能因为帮助我的问题而强大并获得 300 分吗? stackoverflow.com/questions/42172228/…
-
@Lark 这个框架怎么样?有什么可以帮助我的吗? stackoverflow.com/questions/42172228/…
-
@Lark 在我正在修补的系统中,我将所有路由器验证移动到一个名为 RouterValidator 的单独类中。我在这里发布了代码和 UML 图:stackoverflow.com/questions/42172228/…
标签: php model-view-controller redirect router