PHP路由实现原理,求指教
高洛峰
高洛峰 2016-11-15 16:26:13
[PHP讨论组]

用了一段时间框架才恍然大悟,貌似MVC框架的核心在于路由,请各位大侠指教下具体原理,例如TP5的路由就很强大,但源码基本没注释看了2小时,楞是没整明白整个流程是怎么样的。

我现在能做到的只有pathinfo这一步,后面的各种规则路由、正则路由就看不懂了,希望你能给我一个实现流程,或者具体demo、在或则教程,能有相关书籍也可以O(∩_∩)O谢谢!


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
三叔

MVC的核心思想是分离界面和逻辑,个人认为跟前端路由没什么关系,前端路由只不过是为了统一入口.

不要把问题想得太复杂,其实就是提取出字符串,然后套数组,其实就是一行代码的事.

 '',
  1 => 'post', //控制器(控制器存在就require)
  2 => 'edit', //方法
  3 => '1024', //参数(获取参数foo就用传统的$_GET['foo'])
)

$class = $uri[1];
require 'controller/'.$class.'.php'; // controller/post.php
$object = new $class();
$action = $uri[2];
$parameter = $uri[3];
echo call_user_func_array(array($object, $action), array($parameter)); //调用对象里的方法并传参

controller/post.php:
class post {
    public function edit($id) {
        return '$'.__CLASS__.'->'.__FUNCTION__.'('.$id.')'; //输出 $post->edit(1024)
    }
}


热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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