批改状态:合格
老师批语:路由是欺骗的艺术, 你看到的url其实都是假的, 这就是编程的魅力
路由主要将URL中的控制器,方法解析出来,映射到对应的控制器和方法中。
通常我们会看到这样的地址http://127.0.0.1/0514/route.php/acton/del/id/10/name/admin,这个地址我们要把它解析出来。
示例:
在浏览器地址栏输入以下http://127.0.0.1/0514/route.php/acton/del/id/10/name/admin
后台部分:
// 创建一个控制器类class UserController{public function del($id, $name){echo '当前路径控制器为' . __CLASS__;echo '<hr>';echo '当前方法为' . __FUNCTION__;echo '<hr>';return "id ==> $id, name ==> $name";}}// 1.解析出PATHINFO$pathinfo = array_values(array_filter(explode('/',$_SERVER['PATH_INFO'])));// 2.解析控制器$controller =array_shift($pathinfo).'controller';// 3.解析控制器中的方法$action = array_shift($pathinfo);// 4.解析参数parse_str($_SERVER['QUERY_STRING'],$params);$params = [];for($i = 0 ; $i < count($pathinfo); $i+=2) {// 检查当前pathinfo变量是否有值?if(isset($pathinfo[$i+1])){$params[$pathinfo[$i]] = $pathinfo[$i+1];}}// print_r($params);// 5.调用控制器方法$user = new $controller;echo $user->$action(...array_values($params));
打印:
当前路径控制器为UserController当前方法为delid ==> 10, name ==> admin
将URL的请求优雅的对应到要执行的操作方法
通过这节课的学习,我认识到了路由的好处,只需要将路径解析好,就可以将网络请求的URL对应PHP应用层的逻辑处理地址,好处非常多。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号