mvc是模型(model)-檢視(view)-控制器(controller)的縮寫,是一種軟體架構模式,MVC模式可以使程式碼結構清晰,更易維護
- 模型(model) : 負責處理資料
- 檢視(view) : 負責處理頁面
- 控制器(controller): 負責處理業務邏輯
工作的流程
- 控制器 呼叫 模型 獲取資料
- 控制器 將獲取到的資料交給 檢視 進行渲染
- 檢視或控制器將渲染好的檢視返回
下面我們用不同的方式實現顯示一個水果價格列表,顯示效果見下圖
0.不使用mvc
<?php
$data = [
'apple'=>['name'=>'蘋果','price'=>5],
'banana'=>['name'=>'香蕉','price'=>3],
'pear'=>['name'=>'葡萄','price'=>6]
];
$html = '<ul>';
foreach ($data as $key => $value) {
$html .= "<li>名稱:{$value['name']} 價格:{$value['price']}元</li>";
}
$html .= '</ul>';
echo $html;
複製程式碼
1.單檔案函式實現
<?php
controller();
function model()
{
$data = [
'apple'=>['name'=>'蘋果','price'=>5],
'banana'=>['name'=>'香蕉','price'=>3],
'pear'=>['name'=>'葡萄','price'=>6]
];
return $data;
}
function view($data)
{
$html = '<ul>';
foreach ($data as $key => $value) {
$html .= "<li>名稱:{$value['name']} 價格:{$value['price']}元</li>";
}
$html .= '</ul>';
return $html;
}
function controller()
{
$data = model();
$view = view($data);
echo $view;
}
複製程式碼
首先定義了m() v() c()
這三個函式
請求進來時呼叫 c函式(控制器),控制器首先呼叫 m函式(模型)獲取資料,然後呼叫 v函式(檢視) ,將獲取到的資料傳給檢視,由檢視渲染html,渲染完成返給控制器,由控制器輸出到瀏覽器
這個版本已經將程式碼實現了基本的 mvc分離,可以說實現了基本的mvc結構
2.多檔案類實現
分別建立Controller類 Model類 View類,並獨立到三個檔案中,請求由index.php處理
完畢