>  기사  >  백엔드 개발  >  如何写出来的东西才叫mvc哦。小弟我艹艹艹艹熬

如何写出来的东西才叫mvc哦。小弟我艹艹艹艹熬

WBOY
WBOY원래의
2016-06-13 13:13:34867검색

怎么写出来的东西才叫mvc哦。我艹艹艹艹熬
本来就不会,还偏让这样写。真TM讨厌。

我分为几个目录,比如model目录,核心目录(数据库类等)。

然后我写一个控制器,用最简单的switch判断请求要查询的model,然后再加个smarty当V。
大致代码好像是

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->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- -。

------解决方案--------------------
就是有个类叫做controller,大概是这个样子的
class controller {
function getModel($name) {}
function getView($name) {}
.
.
}
然后每个c继承这个controller,从而使用一些c都会用到的函数
类似的,一般model基类会有数据库连接方法,输入过滤方法,也会有获取其他model的方法
然后如果是有模版的mvc架构,例如joomla,view和模版是区分的,这个时候的view基类会有装载模版、装载对应model方法等等。

getModel($modelName)
这个函数一般大概是这么写的
PHP code

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];
}
} <div class="clear">
                 
              
              
        
            </div>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.