PHP写一个最简单的MVC框架

照网上看的。Framework.class.php文件是灵魂。

<?php
class Framework {
    public static function run() {
        //echo "run()";
        self::init();
        self::autoload();
        self::dispatch();
    }
    
    private static function init() {
        define("DS", DIRECTORY_SEPARATOR);
        define("ROOT", getcwd().DS);
        
        define("APP_PATH", ROOT.'application'.DS);
        define("PUBLIC_PATH", ROOT.'public'.DS);
        define("FRAMEWORK_PATH", ROOT.'framework'.DS);
        
        define("CONFIG_PATH", APP_PATH.'config'.DS);
        define("CONTROLLER_PATH", APP_PATH.'controllers'.DS);
        define("MODEL_PATH", APP_PATH.'model'.DS);
        define("VIEW_PATH", APP_PATH.'view'.DS);
        
        define("CORE_PATH", FRAMEWORK_PATH.'core'.DS);
        define("DB_PATH", FRAMEWORK_PATH.'database'.DS);
        define("LIB_PATH", FRAMEWORK_PATH.'libraries'.DS);
        define("HELPER_PATH", FRAMEWORK_PATH.'helpers'.DS);
        
        define("UPLOAD_PATH", PUBLIC_PATH.'uploads'.DS);
        
        define('PLATFORM', isset($_REQUEST['m'])?$_REQUEST['m']:'frontend');
        define('CONTROLLER', isset($_REQUEST['c'])?$_REQUEST['c']:'Index');
        define('ACTION', isset($_REQUEST['a'])?$_REQUEST['a']:'index');
        
        define('CURR_CONTROLLER_PATH', CONTROLLER_PATH.PLATFORM.DS);
        define('CURR_VIEW_PATH', VIEW_PATH.PLATFORM.DS);
        
        require CORE_PATH."Controller.class.php";
        require CORE_PATH."Loader.class.php";
        require DB_PATH."Model.class.php";
        require DB_PATH."Mysql.class.php";
        
        $GLOBALS['config'] = include CONFIG_PATH."config.php";
        
        session_start();
        
    }
    
    private static function autoload() {
        spl_autoload_register(array(__CLASS__, 'load'));
        
    }
    
    private static function load($classname) {
        if (substr($classname, -10) == "Controller") {
            require_once CURR_CONTROLLER_PATH . "$classname.class.php";
        } elseif (substr($classname, -5) == "Model") {
            require_once MODEL_PATH."$classname.class.php";
        }
    }
    
    private static function dispatch() {
        $controller_name = CONTROLLER . "Controller";
        $action_name = ACTION. "Action";
        $controller = new $controller_name;
        $controller->$action_name();
        
    }
}
?>

转载于:https://www.cnblogs.com/aguncn/p/11137096.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值