封装mvc框架【二】

来源:互联网 发布:成都 银海软件 编辑:程序博客网 时间:2024/05/31 11:04

之前已经说过关于封装mvc框架的运行流程和对路由类的了解,接下来我们将进一步对mvc的类进行剖析完善。

首先我们来完成在控制器中对数据库进行连接;

一、模型类


首先我们在核心文件夹core下的lib文件夹下建立model.php 文件;

.在model.php里,首先需要一个命名空间,并让这个model类继承pdo,这样model也可以有直带的方法

接下来写一个初始化的方法;初始化的方法中连接我们的数据库

<?phpnamespace core\lib; class model extends \PDO{    public function __construct()    {        //连接数据库        $dsn = "mysql:host=127.0.0.1;dbname=test";        $username = 'root';        $passwd='1111';        try        {            //连接测试            parent::__construct($dsn,$username,$passwd);        }        //连接失败 抛出异常        catch(\PDOException $e)        {            var_dump($e->getMessage());        }    }}
然后我们可以在我们的控制器当中写一些sql语句,用来测试!!

<?phpnamespace App\ctrl;class indexCtrl extends \core\mpk{public function index(){// print_r("is indexCtrl");// 模型$model= new \core\lib\model();$sql="select * from users";$ret=$model ->query($sql);print_r($ret->fetchAll());//打印数据}
运行index控制器的index方法,打印出数据。这样我们就可以在控制器当中使用mysql了。


二、视图类

视图可以把变量赋值到视图层去,并且可以调用视图文件


<?phpnamespace App\ctrl;//控制器继承mpk的基类class indexCtrl extends \core\mpk{      //视图层public function show(){$data="你好";$this->assign('data',$data);//把变量赋值到视图中$this->display('index.php');//调用视图文件}}?>
 开始编码
因为控制器继承于mpk.php的基类,所有我们就在mpk.php增加我们的这两个方法

public function assign($name,$value)//接值{$this->assign[$name]=$value;//赋值} public function display($file){// echo $file;die;$file=MODULE.'/views/'.$file;// 判断视图是否存在if(is_file($file)){       //如果文件存在则引入extract($this->assign);include $file;}}


然后我们需要建立我们存放视图的文件夹,与Ctrl控制器平级建立view文件夹,在view建立index.php,来输出我们在控制器定义的变量

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>Document</title></head><body><h3>视图层</h3><?php echo $data;?></body></html>


接下来运行就可以看到视图层运行结果了!!!!








 





0 0
原创粉丝点击