php简单的MVC(含源码)

作者: 欧巴冰冰 | 来源:发表于2016-12-14 10:44 被阅读291次

项目结构:
统一入口文件
引入配置
引入类
自动加载类
根据参数自动跳转至控制器

C 控制器: 业务逻辑 负责跳转页面
M 模型类: 主要操作数据库,列表,详情,修改,添加等
V 试图: 负责显示数据

目录结构:
Common 公共文件
Lib 用到的类库
Controller 所有控制器
Model 所有模型
View 所有视图
index.php 项目入口

一般情况下, 一个表对应一个控制器可一个模型类,视图可能有很多个
源代码下载

截图

<?php

// 统一入口文件

// 定义项目路径
define('BASE_PATH', __DIR__);
define('BASR_URL', "{$_SERVER['SERVER_NAME']}/demo/Blog");

// 引入核心类
require BASE_PATH . '/Common/config.php'; // 引入项目的配置
require BASE_PATH . '/Common/fun.php';// 引入工具相关(自动加载,路由跳转)
require BASE_PATH . '/Common/Tools.php';// 项目需要用到的工具方法



//路由跳转


// D($_REQUEST);
// 路由控制跳转至控制器 
if(!empty($_REQUEST['r']))
{
    // r=user/list
    $r = explode('/', $_REQUEST['r']);
    list($controller,$action) = $r;
    $controller = "{$controller}Controller"; // UserController
    $action = "action{$action}"; //actionList
    
    // D($controller);
    // D($action);
  
    // $controllerObj = new UserController();
    // $data = $controllerObj->actionlist();

    if(class_exists($controller))
    {
        if(method_exists($controller,$action))
        {
            // 回调这个函数
            $data = call_user_func(array( (new $controller), $action));   
        }
        else
        {
            die("{$controller}类不存在此函数{$action}");
        }
    }
    else
    {
        die("{$controller}类不存在");
    }
    
}




// 注册自动加载
if(!file_exists('user_aotu_load'))
{
    function user_aotu_load($className)
    {
        $classPath = 'Lib';
        // var_dump(strrpos($className, 'Controller') );
        if(strrpos($className, 'Controller') !== FALSE )
        {
            $classPath = 'Controller';
        }
        else if(strrpos($className, 'Model') !== FALSE )
        {
            $classPath = 'Model';
        }
        // D($classPath);
        $classPath = BASE_PATH . "/{$classPath}/{$className}.php";
        // D($className);
        // D($classPath);
        // var_dump(file_exists($classPath));
        if(file_exists($classPath))
        {
            include $classPath;
        }
        // exit;
    }
    spl_autoload_register('user_aotu_load');
}
    
?>

源代码下载

__各位同学感觉不错的记得给个喜欢 __

相关文章

网友评论

    本文标题:php简单的MVC(含源码)

    本文链接:https://www.haomeiwen.com/subject/qxkimttx.html