受到兩位大佬的影響 @章亦春 @仁風,決定寫一個簡單的MVC源碼,爭取在年前寫完分享給你們。
MVC 是 Model-View-Controller 的簡稱,用一種業務邏輯、數據、頁面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,與用戶交互的頁面能夠不受業務邏輯限制,可隨時更改和切換。
上圖是一個 MVC 框架處理請求的流程,Controller 接收請求,並組織轉發請求到 Model,Model 實現邏輯代碼和數據交互,返回結果給 Controller,Controller 執行頁面處理並返回結果給請求。php
沒有固定答案,但如下內容是我預計要實現的:linux
我把要實現的框架命名爲 origin
,但願各位帶着初心出發 之後牛逼了別忘了 origin
。laravel
框架的大體結構,如圖所示架構
架構圖的最頂部有三個模塊,分別是mvc
分發器的做用是,進行全局管理,包括全部類的實例化操做,公共方法的定義等,容器和盒子是分發器的子類,它們的區別在於,容器中的實例能夠重複利用,盒子中的實例每次會從新建立。 app
容器就是 laravel
每天吹的容器框架
咱們在工做目錄下建立一個名爲 origin
的文件夾做爲框架名稱。工具
$ mkdir origin
在 origin
中須要建立一系列目錄用來存放應用代碼和框架自己的代碼測試
$ cd origin $ mkdir app core public $ cd app $ mkdir controllers models views conf
建立好後目錄結構爲(使用 tree
命令)spa
origin - app - conf - controllers - models - views - public - core
其中文件夾 app
用來存放全部與應用相關的代碼,core
用來存放框架自己的代碼,public
存放入口文件(如 index.php)和公共資源(如 JS,CSS)。
本結主要介紹了 MVC 框架的概念和工做流程,以及一些開發規範和命名空間。建立了一個 origin
的目錄做爲框架名稱,並在該目錄下建立了一些目錄用於框架代碼和應用代碼的隔離。
下期見