封裝mvc框架【二】

之前已經說過關於封裝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>


接下來運行就可以看到視圖層運行結果了!!!!








 





發佈了26 篇原創文章 · 獲贊 29 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章