本来就不会,还偏让这样写。真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- -。

解决方案 »

  1.   

    还在纠结中.....
    想弄个跟zf那种URL的形式...
      

  2.   

    tp的创始人都说了:不拘泥于mvc!
      

  3.   

    你的应用场景如何?如果不是非常大的访问量,可以用既有的框架。如果访问量非常大,才需要自己写方法。如果是一定要自己写框架,那么有几个关键文件第1个是入口文件,负责分发
    第二 三 四个分别是c m v的基类
    第五个是通用方法,例如可以写一个getModel($modelName),作用是载入$modelName对应的文件,然后生成一个实例并返回;
    再有就是配置文件了(说的有点乱,真正的mvc会更复杂,见谅)
      

  4.   

    哎,项目不大,TP等等还不会。入口文件稍后会写,配置文件只有一个数据库的配置和所有的包含文件。
    问:2,3,4 啥叫基类啊? 我这里好像就一个DB类,
        5:getModel($modelName)   这是什么意思?不是自动加载模型吧?能详细聊聊么?
      

  5.   

    就是有个类叫做controller,大概是这个样子的
    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等异常控制。献丑。