PHP實現MVC開發得最簡單的方法 單點入口

2021-04-17 12:47:16 字數 2083 閱讀 5442

很早前就想寫一些關於php實現mvc的新的體會。今天就開始詳細的寫寫我對mvc的一些理解,以及我在開發過程中實現自己的乙個框架的乙個流程。其中或許說的不正確,還望指正!

m是指model。controller 並不參與業務邏輯,整個業務邏輯部分應該是放在 model 層中的。controller 只起到分發請求的作用,也就是說得到當前的 request,決定呼叫哪個 model 獲取資料,然後再賦值給哪個 view 來渲染頁面

具體實現mvc,我覺得最好還是要做到單點入口。

什麼是單點入口呢?所謂單點入口就是整個應用程式只有乙個入口,所有的實現都通過這個入口來**,比如說在上面我們就使用index.php作為程式的單點入口,當然這個是可以由你自己任意控制的。

為什麼要做到單點入口呢?單點入口有幾大好處:第

一、一些系統全域性處理的變數,類,方法都可以在這裡進行處理。比如說你要對資料進行初步的過濾,你要模擬session處理,你要定義一些全域性變數,甚至你要註冊一些物件或者變數到註冊器裡面(主要是實現在全域性,具體你可以參考我先前翻譯的一些文章

《在php中使用全域性變數》)。第

二、程式的架構更加清晰明了。當然好處還有很多的,我也不一一枚舉了,具體你可以去體會。

當然單點入口也存在一些不足,比如你系統大了後,不可能只乙個點做為入口,尤其系統存在兩個完全不相關的功能時候,不過很高興的說,這個是可以擴充套件,你可以擴充套件多個入口。比如說在最近乙個大專案中,後台的管理和前台是不相關的,所以我就會有兩個入口,乙個是index.php乙個是admin.php。但這不不是說單點入口不好(具體含義你可以揣摩下)。

《回答phpchina上的幾個問題:url對映》,裡面實現了單點入口的核心,這裡我具體實現,並演示下)。單點入口最關鍵的就是通過url傳遞引數來實現程式的分配,具體說,比如:位址是index.php?controller=test&action=test,這就通過index.php把請求**到對應的testcontroller檔案中,並執行其對應的testaction方法(這裡的控制器和方法的命名都參考了zend framework的思想)。

下面我們用最簡單的方法是來實現上面說的單點入口(記住:簡單起見,我這裡沒有使用url映**)

/index.php

<?

define

('site_path'

,str_replace(''

,'/'

,dirname

(__file__

)));

//定義系統目錄

$controller

=(!empty(

$_get

['controller'

]))?

$_get

['controller'

]:'index'

;//獲取控制器,預設index

$action

=(!empty(

$_get

['action'

]))?

$_get

['action'

]:'index'

;//方法名稱,預設index

$controller_name

=$controller

.'controller'

; $controller_file

=site_path..

$controller_name

.'.class.php'

;//獲取控制器檔案

if(file_exists

($controller_file

))();

}else

?>

對應的乙個演示demo

<?

class 

testcontroller }

?>

開啟瀏覽器,輸入http://path/to/yoursite/index.php?controller=test&action=test(注意相應的修改你的路徑),如果你看到hello,world!說明mvc第一步,單點入口成功了!

php簡單實現MVC

php中的mvc mvc 1 在軟體工程中是一種軟體的架構。從php的角度來講mvc有一些不同。model 模型 程式應用功能的實現,程式的邏輯的實現。在php中負責資料管理,資料生成。view 檢視 圖形介面邏輯。在php中負責輸出,處理如何呼叫模板 需要的資源檔案。controller 控制器 ...

php簡單實現MVC

php中的mvc mvc 1 在軟體工程中是一種軟體的架構。從php的角度來講mvc有一些不同。model 模型 程式應用功能的實現,程式的邏輯的實現。在php中負責資料管理,資料生成。view 檢視 圖形介面邏輯。在php中負責輸出,處理如何呼叫模板 需要的資源檔案。controller 控制器 ...

PHP之簡單實現MVC框架

1.概述 mvc全名是model view controller,是模型 model 檢視 view 控制器 controller 的縮寫,一種軟體設計典範,用一種業務邏輯 資料 介面顯示分離的方法組織 將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。...