路由和请求

优质
小牛编辑
140浏览
2023-12-01

Herosphp的url结构采用的是pathinfo的形式,没有严格的路由,只要你的请求方式遵循我们定义的格式组装URL,就可以自动路由,不像某些其他框架一样需要手动添加路由。URL的结构如下:

标准格式:/ucenter/user/login/userid-123-username-xiaoming.shtml (伪静态模式)

当然你也可以这样写:

常规格式:/ucenter/user/login?userid=123&username=xiaoming

或者这样:

常规格式:/ucenter/user/login/?userid=123&username=xiaoming

都是OK的啦。

那其实URL的格式是按照下面的规则去解析的

/  ucenter  /   user   /    login    /  userid-123-username-xiaoming /.shtml

/   模块    /  控制器  /    方法名    /           参数                / 后缀

通常情况下,你可能需要把常规你的 URL 转换为伪静态的形式,你可以使用 url 辅助函数来操作


$url = '/ucenter/user/login/?userid=123&username=xiaoming';
echo url($url);

//将输出 /ucenter/user/login/userid-123-username-xiaoming.shtml

或者直接在模板使用它(关于模板标签的使用,请参考 模板引擎)

<a href="{url /ucenter/user/info/?userid=123}">查看用户详细信息</a>

URL路由映射

有的时候,为了SEO的需要,你需要你的某些页面的URL尽量简短。比如说都写成类似以及目录页,但是框架的标准地址都是三级目录的,这显然不满足你的要求。别急,框架给你提供的URL路由自定义映射功能,详细请移步这里 URL映射

二次开发

路由的实现是在herosphp\http\HttpRequest 类中实现的,如果想要二次开发,可以重写或者修改 HttpRequest::parseURL() 这个方法。

当然,你可能还需要修改url() 这个全局函数。