zoukankan      html  css  js  c++  java
  • ajax + php + Controller 控制所有后台函数调用

    转载请注明出处:http://www.cnblogs.com/ghypnus/p/4645873.html 

    好久没有来这边发布代码了

    总共分成3大部分来完成php的ajax调用逻辑,以下是大致的结构

    第一部分:ajax请求:主要是action这个参数,LoginController是php的类名,login是LoginController这个类中的函数名

    $('#submit').on('click', function (e) {
            e.stopPropagation();
            $.ajax({
                url: "../../controllers/Controller.php",
                data: {
                    action: "LoginController/login",
                    username: username,
                    password: password
                },
                dataType: "text",
                type: 'POST',
                timeout: 10000,
                error: function () {
                    alert("服务器超时");
                },
                success: function (data) {
                        alert(data);
                }
            });
        });

    第二部分:Controller.php,这个文件是调用其他具体的功能类的控制器,起到枢纽作用,主要是通过反射来实现

    <?php
    
    if (!empty($_REQUEST['action'])) {
        try {
            $action = explode('/', $_REQUEST['action']);
            $class_name = $action[0];
            $method_name = $action[1];
            require $class_name . '.php';
            $class = new ReflectionClass($class_name);
            if (class_exists($class_name)) {
                if ($class->hasMethod($method_name)) {
                    $func = $class->getmethod($method_name);
                    $instance = $class->newInstance();
                    $func->invokeArgs($instance, array($_REQUEST));
                    $result = $instance->getResult();
                    echo $result;
                }
            }
        } catch (Exception $exc) {
            echo $exc->getTraceAsString();
        }
    }
    ?>

    第三部分:LoginController.php,这个文件是具体的功能类

    <?php
    
    class LoginController {
      
    private $result;
    function LoginController() { //初始化数据库连接等参数 } function login($args) { //具体的登录逻辑 } function getResult() { return $this->result; } } ?>
  • 相关阅读:
    IfcControlExtension (控件扩展)
    IfcKernel (内核)
    IFC4x0核心层
    IfcSharedMgmtElements (共享管理元素)
    IfcSharedFacilitiesElements (共享设施元素)
    IfcSharedComponentElements (共享组件元素)
    IfcSharedBldgServiceElements (共享建筑服务要素)
    IfcSharedBldgElements (共享建筑元素)
    IFC4x0共享层
    IfcStructuralElementsDomain (结构元素领域)
  • 原文地址:https://www.cnblogs.com/ghypnus/p/4645873.html
Copyright © 2011-2022 走看看