這篇文章主要介紹了PHP中MVC模式流程是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)建站主營文縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app軟件開發(fā),文縣h5微信小程序開發(fā)搭建,文縣網(wǎng)站營銷推廣歡迎文縣等地區(qū)企業(yè)咨詢
一、 MVC模式流程圖
二、MVC概念
(1)作用
MVC包括控制器(Controller),模型(Model),視圖(View)。
控制器的作用是調(diào)用模型和 視圖,將模型產(chǎn)生的數(shù)據(jù)傳遞給視圖,并讓視圖去顯示
模型的作用是獲取數(shù)據(jù)并處理返回?cái)?shù)據(jù)
視圖的作用是將取得的數(shù)據(jù)進(jìn)行美化,并向用戶終端輸出
(2)執(zhí)行過程
1. 瀏覽者 -> 調(diào)用控制器,發(fā)出指令
2. 控制器 -> 按指令選擇合適的模型
3. 模型 -> 按指令取數(shù)據(jù)
4. 控制器 -> 按指令選視圖
5 . 視圖 -> 把取到的數(shù)據(jù)展示出來
三、簡單的MVC實(shí)例
(1)目錄規(guī)劃
(2)編寫類文件
1. testController.class.php 控制器類文件
命名規(guī)則:test(名字)Controller(控制器文件).class.php ( 類文件 )
<!-- 首先實(shí)例化控制器對象,并調(diào)用指令方法, 方法里面實(shí)例化模型對象,調(diào)用取數(shù)據(jù)方法 并實(shí)例化視圖對象,調(diào)用展示方法 --> <!-- 控制器的方法沒有參數(shù),而其他的就有參數(shù) --> <?php // 類名和文件名相同 class testController{ function show(){ $testModel = new testModel();//按指令選擇一個(gè)模型 $data = $testModel -> get();//模型按照指令取數(shù)據(jù) //按指令選擇視圖 實(shí)例化一個(gè)view的對象 $testView = new testView(); //把取到的數(shù)據(jù)按用戶的樣子顯示出來 $testView -> display($data); } } ?>
2. testModel.class.php 模型類文件
命名規(guī)則:test(模型文件名稱 )Model( 模型文件).class.php 類文件
<?php class testModel{ //獲取數(shù)據(jù) function get(){ return "hello world"; } } ?>
3. testView.class.php 視圖類文件
<?php class testView{ //展示數(shù)據(jù) function display($data){ echo $data; } } ?>
4. 單一入口文件
讓他來調(diào)用控制器,而控制器去調(diào)用模型和視圖
<?php //引入類文件 require_once('/libs/Controller/testController.class.php'); require_once('/libs/Model/testModel.class.php'); require_once('/libs/View/testView.class.php'); //類的實(shí)例化 $testController = new testController();//對象賦值給變量 $testController->show();//調(diào)用方法 ?>
5.運(yùn)行結(jié)果
四、簡單的MVC實(shí)例改進(jìn)----方法封裝
1. 封裝一個(gè)實(shí)例化控制器等的對象和調(diào)用方法的函數(shù)
<?php //控制器名字和要執(zhí)行的方法 function C($name,$method){ require_once('/libs/Controller/'.$name.'Controller.class.php'); //對象賦值給變量 // $testController = new testController(); // $testController->show(); eval('$obj = new '.$name.'Controller();$obj->'.$method.'();');//把字符串轉(zhuǎn)換為可執(zhí)行的php語句 } //封裝一個(gè)實(shí)例化模型的對象和調(diào)用方法的函數(shù) function M($name){ require_once('/libs/Model/'.$name.'Model.class.php'); //$testModel = new testModel(); eval('$obj = new '.$name.'Model();');//實(shí)例化 return $obj; } //封裝一個(gè)實(shí)例化視圖的對象和調(diào)用方法的函數(shù) function V($name){ require_once('/libs/View/'.$name.'View.class.php'); //$testView = new testView(); eval('$obj = new '.$name.'View();'); return $obj; } //為了安全性 ,過濾函數(shù) //addslashes對’,字符進(jìn)行轉(zhuǎn)義 //get_magic_quotes_gpc()當(dāng)前魔法符號的打開狀態(tài),打開返回true, function daddslashes($str){ return (!get_magic_quotes_gpc() )? addslashes($str) : $str; } ?>
2.重新編寫入口文件index.php
瀏覽器url訪問形式 http://......index.php?controller=控制器名&method=方法名
<?php require_once('function.php'); //允許訪問的控制器名和方法名的數(shù)組 $controllerAllow=array('test','index'); $methodAllow =array('test','index','show'); //用get方式接收url中的參數(shù) //過濾輸入非法字符 并判斷是否在數(shù)組里 $controller = in_array($_GET['controller'],$controllerAllow )? daddslashes($_GET['controller']) :'index' ; $method = in_array($_GET['method'],$methodAllow) ? daddslashes($_GET['method']) :'index'; //調(diào)用控制器和執(zhí)行方法 C($controller,$method); ?>
3.運(yùn)行結(jié)果
瀏覽器訪問 http://localhost:8080/MVC/index.php?controller=test&method=show 顯示hello world
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享PHP中MVC模式流程是什么內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
當(dāng)前名稱:PHP中MVC模式流程是什么
本文鏈接:http://www.ekvhdxd.cn/article34/iijdse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站排名、建站公司、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)