黃政豪
(延邊大學(xué)護(hù)理學(xué)院,吉林 延吉 133000)
基于PHP的簡(jiǎn)單MVC框架的設(shè)計(jì)與制作
黃政豪
(延邊大學(xué)護(hù)理學(xué)院,吉林 延吉 133000)
PHP稱(chēng)為超文本預(yù)處理器,是比較流行的網(wǎng)頁(yè)程序設(shè)計(jì)腳本語(yǔ)言。MVC是比較流行的程序設(shè)計(jì)規(guī)范。本設(shè)計(jì)講解如何通過(guò)PHP腳本語(yǔ)言設(shè)計(jì)出簡(jiǎn)單MVC框架建立網(wǎng)站的方法。
PHP;MVC;網(wǎng)頁(yè)設(shè)計(jì)
PHP是目前比較流行的網(wǎng)頁(yè)程序設(shè)計(jì)腳本語(yǔ)言。MVC(Model View Controller)是模型、視圖、控制器的縮寫(xiě),是一種程序設(shè)計(jì)規(guī)范,主要目的是分離模型和視圖,通過(guò)控制器管理所有的查詢(xún)和顯示過(guò)程,而且MVC框架編寫(xiě)的程序更易于擴(kuò)展,方便日后的功能擴(kuò)展和維護(hù)工作。
MVC基本框架需要3個(gè)文件,分別是test_model.php、test_ controller.php、test_view.php,分別對(duì)應(yīng)模型、控制器、視圖。
首先編寫(xiě)test_model.php,創(chuàng)建test_model類(lèi),包含數(shù)據(jù)庫(kù)連接和查詢(xún)過(guò)程,本實(shí)例因篇幅原因簡(jiǎn)單用變量代替復(fù)雜的數(shù)據(jù)查詢(xún)。內(nèi)容如下:
<?php
//建立數(shù)據(jù)模型
class test_model{
protected $text1;
protected $text2;
public function __construct(){
$this->my_mvc();}
/*構(gòu)建賦值過(guò)程,如果需要數(shù)據(jù)庫(kù),那么可以在此連接數(shù)據(jù)庫(kù)*/
public function my_mvc(){
$this->text1 = "PHP";
$this->text2 = "MVC";}
//在此生成需要顯示在視圖中的一些數(shù)據(jù)內(nèi)容
public function view_data(){
$view_text = "基于" .$this->text1;
$view_text.= "的" .$this->text2 ."框架";
return $view_text;}
}?>
其次編寫(xiě)的是控制器test_controller.php部分,控制器部分包含通過(guò)實(shí)例化test_model并用其中的view_data方法得到的數(shù)據(jù),并發(fā)送到視圖中。
<?php
//建立控制器
class test_controller{
function __construct(){
//加載數(shù)據(jù)模型
require_once "test_model.php";
$this->view_data();}
//顯示控制部分,通過(guò)數(shù)據(jù)模型獲取數(shù)據(jù)并顯示到視圖中
public function view_data(){
$data_model = new test_model();
/*通過(guò)數(shù)據(jù)模型類(lèi)的view_data方法制作出來(lái)的數(shù)據(jù)放到變量中*/
$view_data = $data_model->view_data();
//通過(guò)加載視圖文件,將數(shù)據(jù)顯示到視圖中
require_once "test_view.php";}
}?>
視圖是顯示數(shù)據(jù)的部分,只需要使用html編寫(xiě)規(guī)范設(shè)計(jì)網(wǎng)頁(yè)就可以了。而首頁(yè)index.php里加載并調(diào)用控制器就可以了。
test_view.php部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"></head>
<body>
<!-- 顯示所查詢(xún)到的數(shù)據(jù) -->
<?php echo $view_data;?></body></html>
index.php部分:
<?php
//加載控制器
require_once “test_controller.php";
//實(shí)例化控制器類(lèi)
$test = new test_controller();
?>
至此,所有的代碼部分全部編寫(xiě)完成,并通過(guò)了測(cè)試。本文中使用了變量形式的數(shù)據(jù),如果需要連接到數(shù)據(jù)庫(kù),那么須在數(shù)據(jù)模型文件中添加連接數(shù)據(jù)庫(kù)的代碼,如果建立更多的功能,可以先建立父類(lèi),再去建立具體功能子類(lèi)繼承父類(lèi),這樣就可以更好的減少代碼冗余,提高編寫(xiě)和維護(hù)效率。
[1]斯克拉(美).PHP經(jīng)典實(shí)例[M].中國(guó)電力出版社,2009.
[2]楊曉軍.MVC Web開(kāi)發(fā)學(xué)習(xí)實(shí)錄[M].清華大學(xué)出版社,2011.
[3]李開(kāi)涌.PHP MVC 開(kāi)發(fā)實(shí)戰(zhàn)[M].機(jī)械工業(yè)出版社,2013.