简单的几行代码理解各种PHP框架的路由原理

时间:2017-05-10作者:klpeng分类:PHP浏览:2283评论:0

下面我们来看几行简单的示例代码:

<?php

$uri = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));                                                                                                                                                                                            
$controller = $uri[1];
$method = $uri[2];
$param = $uri[3];
$object = new $controller(); //如果控制器在单独文件则前面加一行:require __DIR__.'/'.$controller.'.php';
echo call_user_func_array(array($object, $method), array($param)); //调用ligphp控制器里面的get方法并传参                                                                                                                                                                   

class ligphp {

    public function get($id) {
        return '调用了' . __CLASS__ . '类的' . __FUNCTION__ . '函数,参数为' . $id;
    }

}

?>

我测试的机器是apache作为web服务器,已经写好了.htaccess文件,下面几行,隐藏index.php的:

<IfModule mod_rewrite.c>    
Options +FollowSymlinks    
RewriteEngine On    
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteRule ^/?(.*)$ index.php?s=/$1 [QSA,PT,L]    
</IfModule>

然后我们在浏览器输入:http://192.168.1.8/ligphp/get/12345,结果会输出:调用了ligphp类的get函数,参数为12345


当然,这只是最简单的一个例子,并不是说路由就是这样的,只是以此例来帮助理解现在的各种框架路由实现。

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢