封装mvc框架【二】

9 篇文章 0 订阅
5 篇文章 0 订阅

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

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

一、模型类


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

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

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

<?php
namespace 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语句,用来测试!!

<?php
namespace 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了。


二、视图类

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


<?php
namespace 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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值