簡說PHP之MVC

傑克孟發表於2018-12-26
mvc是模型(model)-檢視(view)-控制器(controller)的縮寫,是一種軟體架構模式,MVC模式可以使程式碼結構清晰,更易維護
  • 模型(model) : 負責處理資料
  • 檢視(view) : 負責處理頁面
  • 控制器(controller): 負責處理業務邏輯
工作的流程
  1. 控制器 呼叫 模型 獲取資料
  2. 控制器 將獲取到的資料交給 檢視 進行渲染
  3. 檢視或控制器將渲染好的檢視返回

簡說PHP之MVC

下面我們用不同的方式實現顯示一個水果價格列表,顯示效果見下圖

簡說PHP之MVC

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處理

簡說PHP之MVC

簡說PHP之MVC

完畢


相關文章