为什么我需要PHP路由器? 背景

为什么我需要PHP路由器? 背景,php,routes,Php,Routes,上个月,我设计了我的第一个REST API,作为我学习php的努力,它是一个聊天信使,提供对不同API的访问,我依赖于文件夹和文件结构,即URL指向服务器路径中的实际文件,该文件是完成其工作的完整脚本,因此,使用API的应用程序所要做的就是调用特定的URL并提供适当的输入 问题: 最近,我读到了有关路由器的文章,我突然想到了一个问题:为什么我要使用路由器?我真的需要它们吗? 我目前的观点: _如果不使用路由器,API设计和访问都很容易,Apache可以处理路由(如果我没有错的话)。 _对于路由器

上个月,我设计了我的第一个REST API,作为我学习php的努力,它是一个聊天信使,提供对不同API的访问,我依赖于文件夹和文件结构,即URL指向服务器路径中的实际文件,该文件是完成其工作的完整脚本,因此,使用API的应用程序所要做的就是调用特定的URL并提供适当的输入

问题: 最近,我读到了有关路由器的文章,我突然想到了一个问题:为什么我要使用路由器?我真的需要它们吗?
我目前的观点:
_如果不使用路由器,API设计和访问都很容易,Apache可以处理路由(如果我没有错的话)。

_对于路由器,代码更复杂,但是我可以让一些代码在没有实际脚本参与的情况下运行,因此我对API访问等有更多的控制

虽然Yassine在其他地方指出了一个包含大量信息的答案,但在某些方面它有点误导(和错误)

路由器通常用作路由器的一部分。这会将所有传入的请求传送到特定的处理程序,该处理程序通常会通过路由器将请求传递到特定的功能位

这样做的好处是避免了代码的重复——特别是在处理会话管理、身份验证、授权和模板化等方面

例如,考虑:

 <?php
 $sitedown=$_SERVER['DOCUMENT_ROOT'] . "/sitedown.php";
 if (file_exists($sitedown)) {
    require_once($sitedown);
    exit;
 }
 require_once("session/use_memcache_sessions.inc");
 require_once("session/authorization.inc");
 require_once("router.inc");
 require_once("template/pagelayout.inc");     

 session_start();
 begin_page_template($_SESSION['user_prefs']);

 if (is_authorized($_SERVER['PHP_SELF'], $_SESSION['user_groups'])) {
     route_request($_SERVER['PHP_SELF']);
 } else {
     show_unauth_message();
 }

 end_page_template();

查看此StackExchange答案