本来就不会,还偏让这样写。真TM讨厌。我分为几个目录,比如model目录,核心目录(数据库类等)。然后我写一个控制器,用最简单的switch判断请求要查询的model,然后再加个smarty当V。
大致代码好像是switch($action){
case "add1":
$smarty=new Smarty();
$smarty->display("tianjiabumen.tpl");
break;
case "del":
$id=$_GET['id'];
$bm=new bumenmodel();
$bm->id=$id;
$bm->delete();
header("location:bumenkongzhiqi.php?action=chaxun");
break;包含文件更讨厌了,真恶心!这样写出来,勉强算不算MVC- -。
大致代码好像是switch($action){
case "add1":
$smarty=new Smarty();
$smarty->display("tianjiabumen.tpl");
break;
case "del":
$id=$_GET['id'];
$bm=new bumenmodel();
$bm->id=$id;
$bm->delete();
header("location:bumenkongzhiqi.php?action=chaxun");
break;包含文件更讨厌了,真恶心!这样写出来,勉强算不算MVC- -。
解决方案 »
- 怎么样把模板与框架结合?
- 怎样让服务器指定文件夹里的文件,不能直接http下载,但可以用迅雷等工具下载
- 请教php5如何得到,引用本函数的上一级函数名
- 用Appserv 2.5.9集成环境架PHP网站,设两个虚拟主机会非常慢!
- 问一个php正则的问题 请高手帮忙~
- mysql 问题
- 为什么多个mysql_query()有的能执行有的不能执行啊
- 收集好文章
- 真不错,连管理员权限也提供了~
- 如何对上传图片进行简单的编辑?
- 【精华】专业+原创PHP论坛开发完成,欢迎大家使用,并提出意见~~~易进行二次开发
- Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resour
想弄个跟zf那种URL的形式...
第二 三 四个分别是c m v的基类
第五个是通用方法,例如可以写一个getModel($modelName),作用是载入$modelName对应的文件,然后生成一个实例并返回;
再有就是配置文件了(说的有点乱,真正的mvc会更复杂,见谅)
问:2,3,4 啥叫基类啊? 我这里好像就一个DB类,
5:getModel($modelName) 这是什么意思?不是自动加载模型吧?能详细聊聊么?
class controller {
function getModel($name) {}
function getView($name) {}
.
.
}
然后每个c继承这个controller,从而使用一些c都会用到的函数
类似的,一般model基类会有数据库连接方法,输入过滤方法,也会有获取其他model的方法
然后如果是有模版的mvc架构,例如joomla,view和模版是区分的,这个时候的view基类会有装载模版、装载对应model方法等等。getModel($modelName)
这个函数一般大概是这么写的class factory(){
function __contruct(){
$this->models = array();
}
function & getModel($modelName) {
if(!isset($this->models[$modelName])){
require("{MODEL_BASEPATH}/{$modelName}");
$this->models[$modelName] = new $modelName();
}
return $this->model[$modelName];
}
}
上面的factory类,可以是公共类(不过最好只有一个实例),可以是静态类(不过写法要改),也可以是我说的基类。
这是一个简单的动态加载,实际使用的时候最好在外面包try等异常控制。献丑。