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

來源:互聯網
上載者:User

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


  現在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優勢:

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

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

http://www.bkjia.com/PHPjc/928041.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/928041.htmlTechArticlephp中如何制定輕量級的MVC標準 現在MVC的php開源免費架構已經很多了,我們沒有必要去開發一個輕量的MVC來重複製造輪子,本文的目的是學習...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.