現在市面上有很多成熟的mvc框架,可以拿來直接用,但自己造一下輪子其實也挺有意思的。
下面先來看個最簡單粗暴的mvc實現。
5個檔案就能實現最簡單的mvc,在apache中設定乙個虛擬目錄,配置個簡單網域名稱,就可以順利訪問了。
為了實現簡單,這裡沒有寫模型層。
這個檔案是入口檔案,所有的請求就將會先進入到這個檔案,然後再通過路由進入到不同的控制器中。
這就是常說的單一入口。
1. 我簡單的將路由也放在了這個檔案中。
2. 還將乙個簡單的全域性常量放在了這裡。
));//
路由邏輯
if(empty($_get['c'])) else
3. 再是引入試圖的生成類和控制器類
4. 最終初始化這個控制器,就能實現訪問了。
//這樣就完成了一次簡單的訪問,下圖就是輸入了乙個簡單url,展示了view中的內容。初始化邏輯
require_once './view.php';//
試圖控制類
需要訪問的控制器,例如index控制器
$handler = new
$controller;//
初始化這個控制器,例如index
$handler->$action();//
執行方法,也就是最終訪問的那個地方
「.htaccess」是做路由用的,因為我用的伺服器軟體是apache,所以需要,如果是nginx就不需要。
這裡將url中的「index.php」乾掉了,不然訪問就需要多打這個,例如「index.php?c=index&a=action」。
這些引數具體的用法,可以上網自己查一下的。
rewriteengine on市面上有很多模版引擎,很多都需要些學習成本。這裡我用了php自帶的output controlrewritecond % !-d
rewritecond % !-f
rewriterule ^(.*)$ index.php/$1 [l]
相關函式。
下面的**是「view.php」中的方法。
public下面的**是「view/index.php」中的**,就僅僅是輸出乙個變數「$send」而已。function fetch($template, array
$data =)
doctype html控制器在入口檔案「index.php」中初始化了一下,並且也引用了一下指定的方法。>
<
html
lang
="en"
>
<
head
>
<
meta
charset
="utf-8"
>
<
title
>badge
title
>
head
>
<
body
>
<
strong
>
php echo $send
?>
strong
>
body
>
html
>
裡面也沒有使用到什麼高大上的方法,就是在執行生成view的**。
//這樣就實現了一次簡單mvc。一般都會繼承乙個通用的controller父類
class
index
}
接下來會具體的做些邏輯的分層,新增一些通用的功能,路由,引入資料操作,配置檔案等。
製作自己的MVC框架(一) 簡單粗暴的實現
現在市面上有很多成熟的mvc框架,可以拿來直接用,但自己造一下輪子其實也挺有意思的。下面先來看個最簡單粗暴的mvc實現。5個檔案就能實現最簡單的mvc,在apache中設定乙個虛擬目錄,配置個簡單網域名稱,就可以順利訪問了。為了實現簡單,這裡沒有寫模型層。這個檔案是入口檔案,所有的請求就將會先進入到...
打造自己的MVC框架
打造自己mvc框架 1 mvc概念 model view controller 控制器 2 psr規範 psr1 基礎程式設計規範 psr2 編碼風格規範 psr3 日誌介面規範 psr4 自動載入規範 3 命名規範 檔名和類名相同 大駝峰原則 indexcontroller 命名空間名和資料夾名相...
自己構思的MVC框架
我除了是乙個很懶惰的人,更是乙個很吝嗇的人,更加是乙個不願被約束的人。在挑選開源表示層框架時,因為懶惰,我要求 1.好學,我不希望花乙個月的時間去學習如何配置 2.好用,要真的能夠提高開發的效率,而不是把自己繞進去 因為吝嗇,我要求 3.不要過於龐大,過多的依賴其他專案,占用過多的記憶體 4.執行效...