php中關於mvc的一些話題,php的mvc框架

本文目錄一覽:

什麼是MVC?PHP

MVC由Model(模型), view(視圖)和Controller(控制器)組成,PHP MVC可以更高效地管理好3個不同層的PHP代碼。

Model:數據信息存取層。

View:view層負責將應用的數據以特定的方式展現在界面上。

Controller:通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

簡述MVC思想與PHP如何實現MVC

簡單的說就是將網站源碼分類、分層。

MVC三個字母的含義:

M:Model 模型,負責數據庫操作。

V:View 視圖,負責調用Model調取數據,再調用模板,展示出最終效果。

C:Controller 控制器,程序的入口,決定改調用哪個View,並告訴View該做什麼。

如此說來,程序的執行順序是C-V-M 或 C-M ,和MVC的名字正好相反。

php中MVC的開發模式如何去理解?

MVC設計模式把一個軟件組件區分為三個不同的部分,model,view,controller。

MVC模式是”Model-View-Controller”的縮寫,中文翻譯為”模式-視圖-控制器”。MVC應用程序總是由這三個部分組成。Event(事件)導致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數據或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數據來刷新自己。MVC模式最早是smalltalk語言研究團提出的,應用於用戶交互應用程序中。smalltalk語言和java語言有很多相似性,都是面向對象語言,很自然的SUN在petstore(寵物店)事例應用程序中就推薦MVC模式作為開發Web應用的架構模式。MVC模式是一種架構模式,其實需要其他模式協作完成。在J2EE模式目錄中,通常採用service to worker模式實現,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式組成。而Struts只實現了MVC的View和Controller兩個部分,Model部分需要開發者自己來實現,Struts提供了抽象類Action使開發者能將Model應用於Struts框架中Model是代表組件狀態和低級行為的部分,它管理着自己的狀態並且處理所有對狀態的操作,model自己本身並不知道使用自己的view和controller是誰,系統維護着它和view之間的關係,當model發生了改變系統還負責通知相應的view。

View代表了管理model所含有的數據的一個視覺上的呈現。一個Model可以有一個以上的View,但是Swing中卻很少有這樣的情況。

Controller管理着model和用戶之間的交互的控制。它提供了一些方法去處理當model的狀態發生了變化時的情況。

PHP MVC的疑問

關於smarty的問題樓上解釋的都比較清楚了。

關於controller在MVC中發揮的作用以及它的工作流程,我想可以這麼簡單地去理解。

1.當你去商店購買東西時,你要對售貨員發出購買請求,比如一個最簡單的表單提交。這個請求通過view對應的action觸發,並且提交至controller接受該請求。

2.這個時候售貨員要根據你的購買請求在商店裡尋找你需要的貨物,這就是controller對你的請求進行邏輯分析和函數調用。

3.售貨員發現你要求的貨物商店沒有了,只能去倉庫去,倉庫好比數據庫。這時候也就是controller對數據庫表映射出來的對象進行操作,說明我要對數據庫哪個表進行操作,要操作的具體內容是什麼。比如在cakephp中,我要對user表進行查詢操作,那麼我就要在這個對應的函數中加入$this-User-find(‘all’); 表示我現在對users這個表進行查詢操作,返回所有值。至於為什麼User就是對應users表,這個在cakephp中有命名約定,你可以去了解一下。

4.所以說,controller的操作流程應該是 用戶發出請求-controller接受請求-處理請求-對M對象進行具體操作-返回操作值-返回到V層進行顯示。

5.純手工製造,有不懂的我盡量幫忙,加油^^

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/287357.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:08
下一篇 2024-12-23 13:08

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Zlios——一個多功能的開發框架

    你是否在開發過程中常常遇到同樣的問題,需要不斷去尋找解決方案?你是否想要一個多功能、易於使用的開發框架來解決這些問題?那麼,Zlios就是你需要的框架。 一、簡介 Zlios是一個…

    編程 2025-04-29
  • agavi開發框架

    Agavi是一個基於MVC模式的Web應用程序開發框架,以REST和面向資源的設計為核心思想。本文章將從Agavi的概念、優點、使用方法和實例等方面進行詳細介紹。 一、概念 Aga…

    編程 2025-04-29
  • Python unittest框架用法介紹

    Python unittest框架是Python自帶的一種測試框架,可以用來編寫並運行測試用例。在本文中,我們將從以下幾個方面詳細介紹Python unittest框架的使用方法和…

    編程 2025-04-29
  • com.alipay.sofa.bolt框架

    com.alipay.sofa.bolt框架是一款高性能、輕量級、可擴展的RPC框架。其廣泛被應用於阿里集團內部服務以及阿里雲上的服務。該框架通過NIO支持高並發,同時還內置了多種…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • LuaEP:一款強大的Lua開發框架

    LuaEP是一個集成了可以快速開發web應用程序所需的組件的Lua開發框架。它以Lua語言為基礎,提供了許多常用接口和庫,使得開發者不需要從頭開始編寫web應用程序,而是專註於業務…

    編程 2025-04-28

發表回復

登錄後才能評論