php写的一个简单路由控制类

最近写一个项目后台用到php,我对php了解不深,只是用到了一些项目需要的简单的基本特性。在项目中,我觉得应该整一个类似路由的控制类,用来接收前台的请求,并分发到不同的业务类中处理,再将结果返回前台,我想很多框架中都有这样的思想。下面贴出我的代码,写得不是很好,欢迎高手们指出缺点。

文件命名为Controller.php

<?php
header("Content-type:text/html; charset=UTF-8");
session_start();

//前台必须抛的参数:
//class:需要调用的类(含有文件地址信息)
//action:需要调用的方法
//均返回json格式。
$class = $_POST["class"];
$action = $_POST["action"];

if (!empty($class) && !empty($action)) {
    //包含相应的类文件
    require_once ("$class" . ".php");
    $temp = preg_split('[/]', $class);
    $class = end($temp);
    //生成类实例
    $instance = new $class;
    //根据action调用不同方法,均返回json格式
    switch ($class) {
        case "Show":
            switch ($action) {
                case "getUserInfo":
                    $jsonback = $instance->$action($_POST['account']);
                    break;
            }
            break;
        case "Rank": //排名类
            switch ($action) {
                case "getAllRank": //获取所有排名
                    $jsonback = $instance->$action($_SESSION['account']);
                    break;
                case "getRank": //获取用户排名,直接从session中获取
                    $jsonback = $instance->$action($_SESSION['account']);
                    break;
            }
        default:
            break;
    }
}
//返回json结果
echo $jsonback;

?>


前台的请求均可写成以下这种格式,然后Controller.php收到请求后会包含相应的文件,并生成相应的实例,然后调用相应的方法。我觉得这种方法挺适合php的,呵呵~
$.post("Controller.php",{
'class':  ,
'action': ,
'param': ,
},function(data){
},'json');



发布了35 篇原创文章 · 获赞 61 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/cql342624757/article/details/24817249