Heim  >  Artikel  >  Backend-Entwicklung  >  如何写出来的东西才叫mvc哦。小弟我艹艹艹艹熬

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

WBOY
WBOYOriginal
2016-06-13 13:13:34835Durchsuche

怎么写出来的东西才叫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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn