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');



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章