项目结构:
统一入口文件
引入配置
引入类
自动加载类
根据参数自动跳转至控制器
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');
}
?>
__各位同学感觉不错的记得给个喜欢 __
网友评论