Blogger Information
Blog 36
fans 1
comment 0
visits 29715
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP路由原理
Jason
Original
1583 people have browsed it

路由原理与作用

路由的原理

路由主要将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

后台部分:

  1. // 创建一个控制器类
  2. class UserController
  3. {
  4. public function del($id, $name)
  5. {
  6. echo '当前路径控制器为' . __CLASS__;
  7. echo '<hr>';
  8. echo '当前方法为' . __FUNCTION__;
  9. echo '<hr>';
  10. return "id ==> $id, name ==> $name";
  11. }
  12. }
  13. // 1.解析出PATHINFO
  14. $pathinfo = array_values(array_filter(explode('/',$_SERVER['PATH_INFO'])));
  15. // 2.解析控制器
  16. $controller =array_shift($pathinfo).'controller';
  17. // 3.解析控制器中的方法
  18. $action = array_shift($pathinfo);
  19. // 4.解析参数
  20. parse_str($_SERVER['QUERY_STRING'],$params);
  21. $params = [];
  22. for($i = 0 ; $i < count($pathinfo); $i+=2) {
  23. // 检查当前pathinfo变量是否有值?
  24. if(isset($pathinfo[$i+1])){
  25. $params[$pathinfo[$i]] = $pathinfo[$i+1];
  26. }
  27. }
  28. // print_r($params);
  29. // 5.调用控制器方法
  30. $user = new $controller;
  31. echo $user->$action(...array_values($params));

打印:

  1. 当前路径控制器为UserController
  2. 当前方法为del
  3. id ==> 10, name ==> admin

路由的作用

将URL的请求优雅的对应到要执行的操作方法

总结

通过这节课的学习,我认识到了路由的好处,只需要将路径解析好,就可以将网络请求的URL对应PHP应用层的逻辑处理地址,好处非常多。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:路由是欺骗的艺术, 你看到的url其实都是假的, 这就是编程的魅力
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post