本来就不会,还偏让这样写。真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- -。
解决方案 »
- json_encode 后转为数组 为什么根据键名取不到值呢?
- 求解
- 不想要客人知道我产品图片的路径,但是要给客户下载图片。
- apache环境中,网络驱动器不可用
- php传两个参数问题
- 散分,我升星了,变成专家了
- php2exe后,动态链接库无法加载Warning: dl_memory(): Unable to load dynamic library 'PHP_SSH2.DLL'
- 调用AJAX访问服务器,PHP怎么返回一个XML页面给AJAX啊?
- mysql能否从windows上移植到linux上???
- 急急急,高分求教,我的表单为什么传递不了值,代码如下
- 【精华】专业+原创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等异常控制。献丑。