这两天在研究怎么写一个Router
当然,首先这个是用PHP实现的。
然后呢,本质上是获取$_SERVER
这个超全局变量,解析为key-value
对,然后再对path
进行解析 ,用到一个所谓UrlParser
。
最后根据解析出来的参数,返回对应的内容。
这里可以搞得很复杂。
比如说,你可以内部对URL进行redirect,而不是通过Nginx或者Apache。当然,你仍然需要设置Apache或者Nginx,把所有请求都转发到index.php
,然后再把所有请求进行内部解析。
还比如说,你可以对解析URL之后的事做OOP
,加一层controller,搞成MVC pattern
。反正吧,要想搞的非常复杂,可以尽管搞。再加一个DAO层,再加一个Service层。加吧,一直往上加。
加着加着,你就发现你开始写PHP框架了。咦,我要干什么来着?哦,对了, 写电商啊。