導航:首頁 > 編程語言 > php用mvc開發的實例

php用mvc開發的實例

發布時間:2022-04-24 07:08:32

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

MVC三個字母的含義: M:Model 模型,負責資料庫操作。 V:View 視圖,負責調用Model調取數據,再調用模板,展示出最終效果。 C:Controller 控制器,程序的入口,決定改調用哪個View,並告訴View該做什麼。 下面是一個超級簡單的MVC結構實現: Controller.php include 'Model.php'; include 'View.php'; class Controller {     private $model     = '';     private $view     = '';          public function Controller(){         $this->model    =    new Model();         $this->view        =    new View();     }          public function doAction( $method = 'defaultMethod', $params = array() ){         if( empty($method) ){             $this->defaultMethod();         }else if( method_exists($this, $method) ){             call_user_func(array($this, $method), $params);         }else{             $this->nonexisting_method();         }     }          public function link_page($name = ''){         $links = $this->model->getLinks();         $this->view->display($links);                  $result = $this->model->getResult($name);         $this->view->display($result);     }          public function defaultMethod(){         $this->br();         echo "This is the default method. ";     }          public function nonexisting_method(){         $this->br();         echo "This is the noexisting method. ";     }          public function br(){         echo "";     } } $controller = new Controller(); $controller->doAction('link_page', 'b'); $controller->doAction(); Model.php class Model {     private $database = array(         "a"    =>    "hello world",         "b"    =>    "ok well done",         "c"    =>    "good bye",     );          //@TODO connect the database          //run the query and get the result     public function getResult($name){         if( empty($name) ){             return FALSE;         }                  if( in_array($name, array_keys( $this->database ) ) ){             return $this->database[$name];         }     }     public function getLinks(){         $links = "Link A ";         $links.= "Link B ";         $links.= "Link C ";                  return $links;     } } View.php class View {          public function display($output){ //        ob_start();                  echo $output;     }     

⑶ 請大家介紹PHP MVC 三層架構開發

php 里很少用mvc架構

mvc架構是一個很優秀的思想,

不分語言

如果你會,你可以把它用在php里,

如果不會就不用學了,

php里多用到template

常用的有smarty ,st smarttemplate,phplib template

再用資料庫類:phplib db_mysql.inc

php是c語言的化身

⑷ php mvc框架

MVC不是建立幾個包而已,而是一種思想,當然幾個包會讓你把這個思想實例出來- -,比如說你有一個表,而已你實例這個表的話,就要有一個類來囊括其中的欄位,包括一些_get,_set方法,然後用另一個類繼承此類,封裝一些添刪改查的等等方法,這個類就可以理解成Model層,可以放在一個包下,而邏輯頁面望望要require_noce此文件類來實例化此類,通過對象來調用其中的方法,進而顯示給客戶,php中C層和V層在不用模板的情況下(比如說smarty)不用分離的那麼明顯,要麼怎麼是php那~小快靈么~整體上不局限於java那種純的面向對象,但又不失對數據安全性與維護性特點,這就是php的MVC~

⑸ php如何實現mvc框架,一定要突出php實現,不是其他語言!!!求大神(最好有步驟)

第一步,單一入口,任何頁面都請求的是根目錄index.php文件,通過querystring或者pathinfo兩種方式任選一種或兩種都用來獲取參數。如果能用URL重寫隱藏URL地址中的index.php更好。
第二步,在index.php中處理接受到的參數,至少要從這些參數中獲得控制器(MVC中的C)的名稱,和方法的名稱,控制器是一個類,有了控制器的名稱就可以調用這個類,並通過方法的名稱來執行控制器裡面的某一個方法,其它參數可以作為這個方法的參數。如果項目較大,還可以把控制器分成不同模塊,放在不同目錄里。
第三步,在控制器裡面處理用戶提交數據,執行流程式控制制,最後將結果輸出到視圖文件(MVC中的V)上,視圖文件也可以叫模板,可以在控制器里直接include,也可以使用模板引擎。
補充1:模型(MVC中的M)指的是資料庫模型,也就是各個數據表的數據處理邏輯,你可以做一個資料庫的操作類,也可以做一個ORM對象關系映射框架,在控制器中需要處理數據的時候直接調用就行了。其實PHP中的M比較模糊,看你的習慣,本來MVC開發模式就是為了提高開發效率的,所以你覺得怎麼方便怎麼來。
補充2:你還可以把常用的功能都封裝成類,一個類實現一個功能,這些類的集合就是類庫,就是我們常說的輪子。簡單的功能也可以做成函數。總之,在需要的時候調用就行了。
補充3:現在幾乎所有主流的PHP框架都是MVC,你如果已經明白了PHP的編程基礎,不妨可以學習一兩種框架,這樣你很快就明白MVC了,並且可以開發自己的框架。
補充4:你以為這么多字我是復制的嗎?我可真的都是手打出來的,我一定是太閑了,採納吧!

⑹ 什麼是MVC以及PHP怎樣實現MVC

其實你的問題一開始就問錯了,即然你問了,我就隨便說說好了。
MVC 是一種設計風格,並不是一種具體手法。每個人寫代碼都有自己習慣的一種設計風格。MVC 是應用程序開發常用的一種風格,實際上並不適合 PHP,因為 PHP 的工作環境註定了它很難做出像樣的控制器,也就是 Controll 。
MVC 本來的設計風格是:整個系統由一個程序啟動,再根據用戶操作調用各個處理模塊,根據數據結果來決定顯示成什麼樣給用戶看。就像我們平時用的各種程序的主界面。這樣程序員創建好主程序以後,只要把注意力集中在開發各個子功能上就可以了。。
可是 php 大多數情況下工作於 web 環境,有「頁」的概念,每次執行都是一個新的請求。這就註定了很難實現真正的 MVC,因為用戶看到頁面時,PHP 已經執行完了,不可能再切換去調另一個 模型M 和 視圖V 。

目前自稱 MVC 的各種框架。也只不過是用一個程序判斷請求,載入不同的功能塊。只能稱之為「單點入口」,在思路上是「請求相同的部份,而包含不同的部份」。這個入口程序實際上啥也沒做,所以算不上是 MVC。反而 JS 開發的富客戶端更接近一些。由一個 JS 主程序,跟據用戶請求決定調用哪些數據,再把界面改變成什麼樣。
設計風格是前人總結出來的東西,在當前語言,當然環境,當前思維方式下。比較容易繼續思考的一種設計方式。MVC 只不過是其中一種,而且並不是最適合 PHP 的一種。偏偏被炒作得好像標准似的。。
如果你一定要, 就去看一下 「PHP 單點入口實現」吧,已經是比較接近的東西了。如果一次性的控制器也能算控制器的話……

⑺ 小弟在做php練慣用到mvc模式開發做個簡單的修改用戶信息目前做到編輯用戶信息了,這是控制器的代碼

視圖 就會有視圖的類 開控制,一般的MVC 框架,比如ThinkPhp,控制器集成父類,在父類裡面已經有調度相關視圖類的操作了。
所以再賦值的時候,只需要使用對應的方法,(TP 的assign 方法,之後 display,就可以在視圖裡面顯示了。)
大致思路就是 你的控制器需要調用 視圖類的一些方法,之後通過視圖 提供的方法顯示頁面。
學習MVC 推薦使用一些框架,比如ThinkPHP,你可以看一下源碼。會讓你受益匪淺的。

⑻ php怎麼實現mvc

MVC三個字母的含義:

M:Model 模型,負責資料庫操作。

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

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

下面是一個超級簡單的MVC結構實現:

Controller.php

include'Model.php';
include'View.php';

classController{
private$model='';
private$view='';

publicfunctionController(){
$this->model=newModel();
$this->view=newView();
}

publicfunctiondoAction($method='defaultMethod',$params=array()){
if(empty($method)){
$this->defaultMethod();
}elseif(method_exists($this,$method)){
call_user_func(array($this,$method),$params);
}else{
$this->nonexisting_method();
}
}

publicfunctionlink_page($name=''){
$links=$this->model->getLinks();
$this->view->display($links);

$result=$this->model->getResult($name);
$this->view->display($result);
}

publicfunctiondefaultMethod(){
$this->br();
echo"Thisisthedefaultmethod.";
}

publicfunctionnonexisting_method(){
$this->br();
echo"Thisisthenoexistingmethod.";
}

publicfunctionbr(){
echo"<br/>";
}
}


$controller=newController();
$controller->doAction('link_page','b');
$controller->doAction();

Model.php

classModel{
private$database=array(
"a"=>"helloworld",
"b"=>"okwelldone",
"c"=>"goodbye",
);

//@TODOconnectthedatabase

//runthequeryandgettheresult
publicfunctiongetResult($name){
if(empty($name)){
returnFALSE;
}

if(in_array($name,array_keys($this->database))){
return$this->database[$name];
}
}

publicfunctiongetLinks(){
$links="<ahref='#'>LinkA</a>&nbsp;&nbsp;";
$links.="<ahref='#'>LinkB</a>&nbsp;&nbsp;";
$links.="<ahref='#'>LinkC</a>&nbsp;&nbsp;";

return$links;
}
}


View.php

classView{

publicfunctiondisplay($output){
//ob_start();

echo$output;
}

}

⑼ PHPmvc開發

看不清楚 貼上代碼

⑽ 看了fleaphp地實例 自己對mvc的理解難道是錯誤地 - PHP框架開發

原帖由 於 2008-8-21 09:20 發表 [i]/*** 載入模型??控制器?* */class App_Run{? ?? ???public function routing(){? ?? ?? ?? ?? ? $model = MOBILE_MODEL.\'_\'.MODEL_SWITCHING.\'_\'.$_REQUEST[\'do\'];//Moudels/default/Index.php? ?? ?? ?? ?? ? if(class_exists($mode ... 我個人認為model層和view層應該是完全沒有關系的。好比飯店的廚師(model)和飯店的吃客。店小二是控制器層。輸出v層和銜接model層應該在控制器層來操作。 查看原帖>>

閱讀全文

與php用mvc開發的實例相關的資料

熱點內容
騰訊雲拼團雲伺服器 瀏覽:364
海南離島將加貼溯源碼銷售嗎 瀏覽:244
linux分區讀取 瀏覽:794
單片機液晶顯示屏出現雪花 瀏覽:890
解壓器用哪個好一點 瀏覽:771
什麼app看小說全免費 瀏覽:503
sha和ras加密 瀏覽:823
韓順平php視頻筆記 瀏覽:636
阿里雲ecs伺服器如何設置自動重啟 瀏覽:596
三星電視怎麼卸掉app 瀏覽:317
如何將pdf轉換成docx文件 瀏覽:32
dos命令批量改名 瀏覽:376
centosphp環境包 瀏覽:601
mfipdf 瀏覽:534
電腦解壓後電腦藍屏 瀏覽:295
外網訪問內網伺服器如何在路由器設置 瀏覽:856
2014統計年鑒pdf 瀏覽:434
linuxoracle用戶密碼 瀏覽:757
股票交易pdf 瀏覽:898
p2papp源碼 瀏覽:308