国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 擴展 > MVC > 正文

php中如何制定輕量級的MVC標準

2024-09-06 20:44:33
字體:
來源:轉載
供稿:網友

   現在MVC的php開源免費框架已經很多了,我們沒有必要去開發一個輕量的MVC來重復制造輪子,本文的目的是學習MVC的結構準備及MVC思路,這樣可以更好的應用開源的MVC框架。

  注:下面的定義都是狹義的,用于限定本次要解決的問題域,你也可以定義你自己標準,這不是啥業界標準。

  (一) 輕量級MVC定義: 

  1. 框架對應用無侵入,不依賴任何接口類

  2. 框架零配置,零注解

  3. 簡單易用,易于理解,暫且不搞RESTful,免得復雜

  (二) 輕量級MVC接口: 

  1. Controller采用setter注入請求參數,并支持層級注入,如:book.title.

  2. Controller采用getter供給數據給View,在View中可直接取到相應屬性值,如:${property}.

  3. Controller采用任意非setter和getter函數處理請求。

  4. Controller采用函數返回值控制跳轉,只允許跳轉到另一Controller,不允許一個Controller對應兩個View.

  5. Controller對Model的依賴采用setter自動裝配,包括Model之間的依賴.

  6. Session參數,如:loginUserId,也通過setter注入到Controller,如果有請求參數注入了loginUserId,也會被Session參數給覆蓋.

  7. View與Controller一對一,通過名稱映射,并支持各種View模板類型擴展,比如:JSP, Velocity, FreeMarker, CommonTemplate等.

  8. 沒有Controller時,View也能執行,相當于隱式Controller。

  9. 框架應提供COC接口,基于規則約定某個包名是model,某個包名是controller,某個目錄是view,比如:com.company.module.controller,自動發現module,并以單例模式加載model,以原型模式加載controller。

  總而言之,接口除了setter和getter,以及自動映射規則,什么都沒有.

  (三) 輕量級MVC訪問: 

  http://主機名[:端口][/應用名]/模塊名/控制器名/函數名.html[?參數名=參數值]

  注:方括號代表可省

  (四) 輕量級MVC實現: 

  符合以上接口的實現均可。

  (五) 輕量級MVC優勢: 

  業務邏輯不依賴任何框架,可以適配到任意框架而不影響業務代碼,當舊的框架被淘汰,無人維護時,可以以最快的方式遷移到新的更穩定的框架.

  理想是美好的,現實是殘酷的,上面純屬個人想法,現實中困難多了,懷著美好愿景總是好的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭平县| 札达县| 绥芬河市| 湟源县| 双城市| 怀化市| 渭源县| 土默特左旗| 启东市| 斗六市| 封丘县| 咸阳市| 醴陵市| 论坛| 运城市| 龙川县| 织金县| 西乡县| 玉田县| 皋兰县| 巨野县| 汾西县| 鄯善县| 焉耆| 临颍县| 郧西县| 碌曲县| 昭平县| 佛冈县| 双牌县| 广南县| 壶关县| 科技| 饶阳县| 钟祥市| 侯马市| 商丘市| 六枝特区| 瓦房店市| 靖边县| 惠水县|