路由
路由的功能就是分发请求到不同的控制器,基于的原理就是正则匹配。接下来呢,我们实现一个简单的路由器,实现的能力是
- 对于静态的路由(没占位符的),正确调用callback
- 对于有占位符的路由,正确调用callback时传入占位符参数,譬如对于路由:/user/{id},当请求为/user/23时,传入参数$args结构为
1 | 复制代码[ |
大致思路
- 我们需要把每个路由的信息管理起来:http方法($method),路由字符串($route),回调($callback),因此需要一个addRoute方法,另外提供短方法get,post(就是把$method写好)
- 对于/user/{id}这样的有占位符的路由字符串,把占位符要提取出来,然后占位符部分变成正则字符串
实现
Route.php类
1 | 复制代码<?php |
Dispatcher.php
1 | 复制代码<?php |
配置
nginx.conf重写到index.php
1 | 复制代码location / { |
composer.json自动载入
1 | 复制代码{ |
最终使用
index.php
1 | 复制代码<?php |
代码讲解,未完待续^–^
本文转载自: 掘金