簡體   English   中英

PHP MVC概念優勢

[英]php MVC concept advantages

我已經使用普通的php和php類實現了應用程序,任何人都可以簡單地解釋MVC架構的確切概念,區別和優點,我已經閱讀了很多有關它的文章,但是我正在尋找一個簡單的答案,請

MVC在php中的重要性是什么?

MVC基本上是“關注分離”

MVC模式將應用程序分為3個模塊:模型,視圖和控制器:

該模型負責管理數據; 它通常從數據庫中存儲和檢索應用程序使用的實體,並包含應用程序實現的邏輯。

視圖 (表示)負責以特定格式顯示模型提供的數據。 它與某些流行的Web應用程序(例如wordpress,joomla等)中存在的模板模塊具有類似的用法。

控制器處理模型和視圖層以協同工作。 控制器從客戶端接收請求,調用模型以執行所請求的操作,並將數據發送到View。 視圖在Web應用程序中將要呈現給用戶的數據格式化為html輸出。

查看:

-代碼和文件組織

僅僅因為您創建了一個“ / inc”文件夾並創建了一個“ functions.php”文件,並不意味着您的代碼是有組織的。 設置PHP框架時,它已經具有特定的文件夾結構。 希望您遵循相同的標准,並以某種特定的方式組織一切。 一旦習慣了這種模型,就再也不想回頭了。 不幸的是,對於仍然使用vi的某些命令行擁護者來說,這可能是一個挑戰。 您將需要處理更多文件,這些文件的大小較小。 但是,當您使用體面的現代代碼編輯器或IDE時,輕而易舉地瀏覽應用程序代碼並快速找到所需的內容。

-公用事業和圖書館

PHP是用於Web開發的出色語言,並提供了無數工具和庫。 但是,如果您嘗試僅使用PHP來構建整個網站,就會發現自己陷入了很多第三方代碼和庫的麻煩之中,或者不得不自己編寫它們。 所有頂級PHP框架都附帶某些庫和幫助程序,可以為您提供幫助:表單驗證輸入/輸出過濾數據庫抽象會話和Cookie處理電子郵件,日歷,分頁等…清單還在繼續。 更不用說,社區提供的大量插件可以添加到框架中。

-安全

在PHP中,您已經可以找到許多輸入和輸出過濾功能,以保護您的網站免遭某些攻擊。 但是,手動使用這些功能會很累,您可能會不時地忘記它們。 使用框架,大多數工作可以自動為您完成。 例如在CodeIgniter中:

  • 傳遞給數據庫對象的任何值都將針對SQL注入攻擊進行過濾。
  • 所有的html生成功能(例如表單幫助程序和url幫助程序)都會自動過濾輸出。
  • 可以針對XSS攻擊過濾所有用戶輸入。
  • 自動加密cookie只是更改config選項的問題。

-更少的代碼和更快的開發

當然,所有PHP框架都有一條學習曲線。 但是一旦克服了這一難題,您將享受快速應用程序開發的好處。

您將編寫更少的代碼,這意味着更少的輸入時間。 您不必為每個新項目都一直追逐第三方庫,因為大多數第三方庫都帶有默認框架安裝。

另外,由於您的組織更加井井有條,因此查找錯誤,維護代碼和更改現有代碼的速度將更快。

-性能工具

反對者的主要論據之一就是這個主題。 當您使用框架對普通的PHP代碼構建“ Hello World”應用程序時,顯然會降低性能。

但是這些基准只是不好的例子。 首先,您應該了解開發人員比服務器昂貴。 從開發和維護中節省時間可能超過您需要花在服務器上的任何額外資金。

撇開所有這些,您實際上可以通過使用PHP框架獲得性能上的好處。 它們帶有可幫助您進行緩存,基准測試,性能分析等的工具。

現代框架也適合動態加載,因為它們僅根據需要加載代碼。 不同的頁面請求可以根據需要使用的內容來加載不同數量的庫代碼。

-適合團隊合作

在PHP框架中組織項目的方式還可以幫助您創建適合團隊合作的環境。

您可以讓您的設計師在Views上工作,數據庫專家在Models上工作,讓聰明的程序員(您自己;))構建可重用的庫和插件等。

您也可以讓某人構建單元測試,因為他們也提供用於該單元測試的工具。

而且很有趣!

在MVC中,您的模型,視圖和控制器是不同的部分。

因此,您可以更改視圖而無需更改控制器和模型。

例如:您擁有站點中所有不需要的信息,而您不想更改設計。 您無需在模型代碼中進行任何更改,只需更改即可更改視圖。

這與php模板中的想法相同,但適用於這三部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM