博主信息
博文 31
粉丝 0
评论 0
访问量 37235
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP中的路由原理, 解析出控制器, 方法和参数(路径参数)
emy
原创
1126人浏览过

一、认识路由原理:目标:将URL中的控制器,方法解析出来,映射到对应的控制器类和方法上。

代码:

<?php
    // 路由原理
    // 目标:将URL中的控制器,方法解析出来,映射到对应的控制器类和方法上
    // 控制器
    class UserController
    {
        // 创建一个方法,写出传入参数
        public function getUser($id, $name)
        {
            return "产品id ==> $id, 产品名称 ==> $name";
        }
    }

    // 1. 解析出PATHINFO 将字符串利用‘/’切割 转为数组
    $pathinfo  = array_values(array_filter(explode('/', $_SERVER['PATH_INFO'])));
    // print_r($pathinfo);
    // 2. 解析控制器 
    $controller = ucfirst(array_shift($pathinfo)) . 'Controller'; 
    // 3. 解析控制器中的方法
    $action = array_shift($pathinfo);
    // print_r($pathinfo);
    // 4. 解析参数: pathinfo路径变量
    // 这里放的是从pathinfo中解析出来的变量组成的数组
    $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));
    //http://php.edu/0514/me.php/user/getuser/id/11/name/鲜花

结果输出:

QQ截图20200531234007.jpg

二、总结:

PHP中的路由目的是用地址调用指定类内的方法并传入参数。在什么场合使用?后期项目中希望能运用到。

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:一二阶段作业,请在6月10日前完成
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学