當面試官問「談談對MVC的理解」「MVC的架構」「XXX層的實現原理」時,面試官究竟是想聽到什麼答案?

我只是一個一年工作的入門級PHP選手,有朋友諮詢,講道理,我都不知道我自己懂不懂,例如我用的TP,這種問題該怎麼回答呢?


不識廬山真面目,只緣身在此山中.

有時候應該跳出框架,看看原生PHP,才能加深對MVC和架構的理解.

MVC的本質就是分離界面和邏輯.

界面反映在PHP開發里就是視圖模板.

邏輯反映在PHP開發里就是控制器.

MVC連在一起表達就是: 控制器,載入數據模型,渲染視圖模板.

可見控制器控制著整個程序輸入輸出的走向.

需要注意的是:

控制器里不寫SQL操作模型,視圖裡不寫邏輯處理業務.


我覺得還是得深入學習一些面向對象的知識吧,並且自己用psr4實現一次MVC。

針對具體的問題,咱們再來組織語言。

我覺得直接告訴你回復的答案是有問題的。

通過剛剛的言論發現,你已經陷入了自己是新手這個陷井了。


控制層 - 數據過濾 返回數據處理 邏輯代碼調用

邏輯層 - 你的業務流水賬

服務層 - 通用封裝

微服務 - rpc

模型層 - 數據表的映射,數據相關的預定義等

當然還有中間件切片的洋蔥模型

最後 不要把自己的思維限制在mvc中,隨著系統複雜度的提升,分層也會增多


樓上基本上解釋了MVC,實際上面試問這種問題,解釋MVC是次要的,主要是想了解一下,你個人對MVC以及實現MVC的原理,載入機制等,有沒有去了解,有沒有閱讀框架的封裝代碼,從這個可以看出一個phper的認知面和代碼水平在哪個層面


自己寫一個簡單的 MVC 就知道人家想知道什麼了。


mvc架構目的是代碼復用,model暴露出某些數據常用操作,view渲染某些數據,controller用model暴露的方法得到數據交給view去渲染。

拙見,有錯誤望指出。


說實話,一樓說的只是理想狀態,生產環境里想要代碼結構乾淨整潔是不太可能的。

另外用框架,不如花點時間讀一下框架的代碼,從入口開始看,到控制器再到視圖,整個流程看下來,你就明白啦


推薦閱讀:

為什麼很少有人在 PHP 項目中使用 namespace ?
php如何 使用多線程?
用php怎麼做以下這種需求?
如何處理iOS開發中 APP端資料庫和網站資料庫選擇和同步問題?
免費php網店(商城)系統有哪些?

TAG:PHP | PHP框架 | PHP開發 | PHP架構 | PHP招聘 |