zoukankan      html  css  js  c++  java
  • PHP单一文件入口框架简析

    <?php
    /**
     * PHP单一文件框架设计简析
     * 1、MVC架构实现
     * 2、URL路由原理
     */
    
    //URL路由原理
    /**
     *  路由作用
     * 获取url中的c和a变量,执行c类对应的方法a,实现不同的路由
     */
    class App {
        public $c;
        public $a;
    
        public function run()
        {
            $c = isset($_GET['c']) ? $_GET['c'] : "Index"; //url提供类名字的变量名
            $a = isset($_GET['a']) ? $_GET['a'] : "Index"; //url提供方法名字的变量名
    
            $c .= "Controller";
            if( class_exists($c) && method_exists($c, $a) ) {
                $o = new $c();  
                $o->$a();  
            }else{  
                echo "error";  
                exit();
            }
        }
    }
    
    //MVC架构
    /**
     * 模型层
     * 获取应用数据作用
     */
    class Model {
        //TODO:link db、get data
    }
    
    /**
     * 视图类
     * 编译、缓存及显示模板
     */
    class View {
        public function render($tpl)
        {
            echo "Hi, ".$tpl; //TODO:具体html模板
        }
    }
    
    /**
     * 控制器
     * 所有功能控制器继承该类
     */
    class Controller {
        public $view;
        public $model;
    
        public function __construct()
        {
            $this->view = new View();
            $this->model = new Model();
        }
    
        public function display($tpl = "")
        {
            echo $this->view->render($tpl);
            exit();
        }
    }
    
    //具体功能开发
    class IndexController extends Controller {
        /**
         * 网站首页
         */
        public function Index()
        {
            $this->display("Index");
        }
        /**
         * 网站列表
         */
        public function List()
        {
            $this->display("List");
        }
    }
    
    //单一文件入口
    $app = new App();
    $app->run();
    ?>
  • 相关阅读:
    二分插入排序
    LEETCODE 返回两个正序数组的 中位数
    4的幂 算法
    leetcode 两个单链表两数相加
    KMP(The Knuth-Morris-Pratt Algorithm)
    Java Case Interview one
    AWK SED命令 简单入门
    Problem Fix List(always update)
    mysql存储过程快速上手
    java while和switch-case循环
  • 原文地址:https://www.cnblogs.com/yyp520thy/p/7642896.html
Copyright © 2011-2022 走看看