路由和请求
优质
小牛编辑
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()
这个全局函数。