为什么需要PHP路由器?

时间:2019-01-05 17:48:28

标签: php routes

背景

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

问题

最近,我读到有关路由器的信息,这个问题浮现在脑海,为什么我应该使用路由器,我真的需要它们吗?
到目前为止我的观点:
_无需使用路由器,API的设计和访问就很容易,Apache会处理路由(如果我没记错的话)。
_随着路由器的代码更加复杂,但是我可以在不使用实际脚本的情况下运行一些代码,因此可以更好地控制API访问等。

1 个答案:

答案 0 :(得分:1)

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

路由器通常用作front controller architecture pattern的一部分。这会将所有传入的请求集中到特定的处理程序中,该处理程序通常会随后将请求通过路由器传递到特定的功能位。

这样做的好处是可以避免代码重复-专门用于处理会话管理,身份验证,授权和模板化。

考虑一下,例如:

SELECT 
    t1.evid
FROM 
    evinvite t1
    LEFT JOIN evfeedback t2 
        ON t2.evid = t1.evid
        AND userid ='".$uzer."' 
        AND status=9
    INNER JOIN evgroups t3
        ON t3.evid = t1.evid
        AND t3.data >= DATE(NOW()) + INTERVAL -7 DAY
    AND t3.data >= DATE(NOW()) + INTERVAL -7 DAY
WHERE 
    t2.evid IS NULL

虽然您可以将许多自包含脚本放到文件系统上,每个脚本都作为入口点,但每个脚本都需要实现上述逻辑。如果您决定开始使用Redis进行会话管理或更改模板,则需要更改每个脚本以适应新的行为。