前言
- 【从0开始写PHP框架】这个系列是一个入门级的基础文章
- 以能说明问题的最少代码量展示一个PHP框架中重要组成部分
- 每一篇文章都对应一个可单独运行的php文件
- 如果你是PHP初学者, 或想了解PHP框架实现原理是怎么样的, 这系列文章或许对你有所帮助。
场景
思路
- 从$_SERVER['REQUEST_URI'],$_SERVER['SCRIPT_NAME']可拿到path_info信息: home/index 或user/profile
- 然后将path_info转换成数组得到类和方法的名称
- 接下来就是new类, 执行方法即可
具体代码
<?php
//截取path_info信息
$path=str_replace($_SERVER['SCRIPT_NAME'],'',$_SERVER['REQUEST_URI']);
$path=trim($path,'/');
//从路径中分离控制器方法
$path=explode('/',$path);
$action=array_pop($path);
$controller=ucfirst(array_pop($path));
//new控制器
$app=new $controller();
//执行方法
$app->$action();
//定义控制器和方法
class Home{
public function index(){
echo "this is index page";
}
}
class User{
public function profile(){
echo "this is profile action";
}
}
以上代码仅仅是最简单的实现,扩展思考: