PHP MVC+;路由器和重定向问题

PHP MVC+;路由器和重定向问题,php,model-view-controller,redirect,router,Php,Model View Controller,Redirect,Router,我有一个奇怪的问题,我一辈子都想不出来。首先,我从头开发了一个PHP MVC框架。我遇到的问题是,在一个exit()调用之后,我得到了一个头重定向执行 以下是路由过程的高级视图: 请求URI被剥离,请求的控制器、方法和任何参数被设置为变量,以便稍后在脚本中使用 php检查以确保请求的控制器是否确实存在,如果不存在,则返回false,但如果所有内容都检查出,则返回true 如果返回true,则执行请求的控制器、方法和任何参数 如果返回false,那么路由器将发送重定向到自定义404页面。这使用PH

我有一个奇怪的问题,我一辈子都想不出来。首先,我从头开发了一个PHP MVC框架。我遇到的问题是,在一个exit()调用之后,我得到了一个头重定向执行

以下是路由过程的高级视图:

  • 请求URI被剥离,请求的控制器、方法和任何参数被设置为变量,以便稍后在脚本中使用
  • php检查以确保请求的控制器是否确实存在,如果不存在,则返回false,但如果所有内容都检查出,则返回true
  • 如果返回true,则执行请求的控制器、方法和任何参数
  • 如果返回false,那么路由器将发送重定向到自定义404页面。这使用PHP的header()函数,在header后面有一个exit() 步骤4是出现问题的地方。请求的控制器存在,因此它可以执行;请求的视图存在,因此它可以正确加载所有内容,但即使在成功加载视图后调用了exit(),它也会执行重定向

    路由器会继续打开并触发重定向有什么原因吗?

    我不想猜测(根据@Tomasz:),但即使您
    exit()
    浏览器也会尊重它得到的任何http头,包括一个位置


    事实上,我也会做类似的事情,在出现任何错误时,我都会发送一个重定向头,然后执行一个
    退出
    ,以确保重定向后控制器中不会继续执行。

    首先请发布一些代码,我们没有能力猜测所有内容。@TomaszKowalczyk True。但是,如果你能帮我解决这个问题,你能变得强大并获得300分吗@云雀那框架怎么样了?你有什么可以帮我的吗@在我正在修补的系统中,我将所有路由器验证转移到一个单独的类中,称为RouterValidator。我在这里发布了代码和UML图:我很想听听关于创建路由类问题的任何想法。