MVC封装之二(2-7)

2-4加载控制器

先加载一个控制器,如果有这个文件的话,会加载这个控制器,如果不存在会抛出一个异常。

static public function run(){
        \core\lib\log::init();
        $route=new \core\lib\route();
        //p($route);die;
        $ctrlClass = $route->ctrl;
        $action = $route->action;
        $ctrlfile = APP.'\\ctrl\\'.$ctrlClass.'Ctrl.php';
        //p($ctrlfile);die;
        $cltrlClass = '\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
        //p($cltrlClass);die;
        if(is_file($ctrlfile)){
            include $ctrlfile;
            $ctrl = new $cltrlClass;
            //p($ctrl);die;
            $ctrl->$action();
        }else{
            throw new \Exception('找不到控制器'.$ctrlClass);
        }
        //p($route);
    }

2-5模型类

先建立一个model类,让他继承pdo类,这样,他就会有一些pdo的方法,然后配置完参数,这里边我们用的是conf::all方法,这个方法是以后调用的所有配置文件。如果数据库连接成功,继续,否则,返回错误信息


<?php
namespace core\lib;
use core\lib\conf;
class model extends \PDO{
    public function __construct(){
        $database = conf::all('database');
        try{
            parent::__construct($database['DSN'],$database['USERNAME'],$database['PASSWD']);
        }catch (\PDOException $e){
            p($e->getMessage());
        }
    }
}

2-6视图类

这里我用的是assign的方法来赋值,display的方法来调用试图文件

其中这两个方法在核心文件中会新添加进去,

    public function assign($name,$value){
        $this->assign[$name]=  $value;
    }
    public function display($file){
        $file = APP.'/view/'.$file;
        if(is_file($file)){
            extract($this->assign);
            include $file;
        }
    }

最后我们新建view文件夹,创建index.html文件

<h1><?php echo $data?></h1>
<h3><?php echo $title?></h3>
传入从控制器中定义好的参数

        $data = 'hello word';
        $title= '这是试图文件';
        $this->assign('data',$data);
        $this->assign('title',$title);
        $this->display('index.html');

这样,视图层就完成了!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值