一个php文件实现单点入口自动加载类模型视图控制器 去掉注释只有20行, /** *惊世php框架控制器页, *20120219,版本2.0, *实现功能:单点入口,自动加载类,控制器, *类库在class文件夹下,命名方式xxx.class.php,配合mysql数据库连接类、缓存静态文件生成类等其他类库,就是完整的框架 *模型在module文件夹下,命名方式xxx.mod.php,每个mod文件里只有一个class, *视图在template文件夹下,命名方式xxx.html,和mod同名,若有,自动加载置于mod代码后, *资源文件存储于src文件夹下,css/js/images. */ |
<?php
header("Content-type: text/html; charset=utf-8");
//url?赋值给数组$c。
$c = array();
$c['class'] = (!empty($_REQUEST['c']) ? (string)($_REQUEST['c']) : 'index'); //module文件和类名值,为空默认为index
$c['method'] = (!empty($_REQUEST['m']) ? (string)($_REQUEST['m']) : ''); //类方法值,为空默认为index
$c['page'] = (!empty($_REQUEST['p']) ? (int)($_REQUEST['p']) : ''); //分页参数
$fileM = 'module/' . $c['class'] . '.mod.php'; //模块文件路径
$fileT = 'template/' . $c['class'] . '.html'; //模板文件路径
require_once('class/mysql.class.php'); //加载必须的数据库连接类
//如果模块文件、类方法存在则加载和调用,反之不操作。
if(is_file("$fileM"))
{
require("$fileM");
if(method_exists(${$c['class']}, $c['method']))
{
${$c['class']}->$c['method']();
}
}
//如果模板文件存在则加载,反之不操作
if(is_file("$fileT"))
{
require("$fileT");
}
?>