A. php的tp框架和mvc有啥區別

首先說Model吧。
在TP中是一個表對應一個Model,而且普通Model中只是一些自動驗證啊,自動完成啊、還有數據欄位信息啊一些東西;而CI中的Model則完全不同,一個Model不必約束於一個表,也就是說名字為abc的Model中你也可以查詢名字為def的表中的數據,而且可以定義方法完成一些數據查詢,比如我可以在名為articles_model的Model中定義一個名字為get_articles的方法來獲取所有文章信息,當某個Controller載入了這個Model後,就可以在相應的Controller中用

1

$this->articles_model->get_articles();

來方便地獲取所有文章信息,而對於TP來說,這些操作只能在Action類中完成。2.0版的TP已經把View、Relation和Adv三個高級查詢model庫類定為不自動載入了,看了一下手冊,感覺除了View視圖查詢容易用一點,另外兩個都不怎麼好用,感覺用起來太復雜,還不如用原生的SQL查詢。CI的Model還有一個使我很喜歡的方法就是dbprefix方法,在使用原生的sql查詢時使用這個函數使得修改資料庫表名前綴後你的代碼不需要經過任何改動。在TP中我沒有發現類似的函數,當我用TP開發一個博客系統時,發現關聯查詢很麻煩,於是想用原生的SQL查詢,卻沒有找到自動增加資料庫表名前綴的方法,雖然可以自己修改TP的核心庫來實現,但是還是覺得這樣有點不太好。真的要感謝TP,如果不是TP,也許我就不會去關注CI了,當我那天看了幾頁CI的英文文檔後,立馬就對它產生的深厚的興趣,於是第二天一起床就開始看CI的手冊,雖然是從官網下的英文版的,不過它的手冊寫得很簡潔、很周到,邊看邊操作,看完手冊後我就幾乎能熟練使用這個框架了。於是用它開發了一個博客系統。
CI的Model類簡單易用,TP的Model類功能相對來說要強大一些,但是用起來個人感覺沒有那麼方便。
其次,對於View,從功能上講,TP的View要更加強大一些,選擇更多一些,在TP中你可以選擇就用PHP作模板引擎,可以就用TP自身的模板引擎,也可以選擇用smarty等其它第三方模板引擎。而在CI中就只能用CI內置的功能簡單的模板引擎或者用原生的PHP代碼作模板,個人覺得用PHP作模板更好一些,一來省去了學習另外的模板引擎語法的麻煩,二來執行效率更高一些。因些從View來講,選擇CI或者是TP都無所謂。
再次是Controller了,在CI中的應用的控制器是繼承自核心類Controller的,TP中的控制器則是繼承於核心類Action。不過還是有不同的,在TP中,你可以把一些公共的變數或者在多個控制器中都要執行的東西放在一個action里,假如這個action文件為CommonAction.class.php ,在它的_initialize方法中可以執行一些在多個控制器中都要執行的代碼或者初始化一些多個控制器都要使用的變數,這樣,應用的其它action只要繼承CommonAction 就可以實現了。因為框架在載入相應action時首先會自動載入那個CommonAction的。而在CI中就沒有這個方便的功能了,但是也可以自己寫一個library,在該library類的__construct方法里放一些代碼,然後在每個控制器中都載入這個library,這樣也可以實現像TP一樣的功能。不過相對來說麻煩了一些。TP還有一點比較靈活的就是,在這個控制器(action)裡面可以執行那個控制器中的函數(比如用A或者R函數來實現),在CI中則不行,你不能在這個控制器中執行那個控制器中的函數。還有就是TP可以定義一個名為EmptyAction的控制器,當所有控制器都找不到時,就調用這個Empty控制器。這一點如果與empty方法配合,可以使得URL大大縮減。雖然CI和TP都支持空操作,不過這二者的空操作名稱不相同,實現的優先順序也不相同。在TP中的空操作(_empty方法)優先順序是最低的,也就是說當當前控制器的所有操作都找不到時才調用這個空操作;在CI中則恰恰相反,只要存在空操作(_remap方法),該控制器的其它的操作都沒用了(不能訪問了)。

B. 如何用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;     }     

C. php框架,cms和mvc他們是什麼關系

CMS是Content Management System的縮寫,意為"內容管理系統"。

MVC是一個設計模式,它強制性的使應用程序的輸版入、處理和輸出分開權。使用MVC應用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務。

可以看出2者之間沒有任何關系。不過目前流行的php cms都採用了mvc設計模式,比如phpcms,dedecms等。

D. PHP中適合使用MVC嗎

適合,不用MVC的話,不容易團隊合作,而且很容易出現修改一個地方另外的地方沒有進行修改(bug總改不完)。
盡量學著使用mvc開發,這樣對你的代碼有好處。
而且等你熟練了以後,你會發現代碼重用很方便。

E. php中laravel和mvc是什麼意思

Laravel是一個簡潔、優雅的PHP開發框架
MVC是一種模型-視圖-控制器的web開發模式。

F. php mvc框架

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

G. 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;
}

}

H. 什麼是MVC以及PHP怎樣實現MVC

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

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

I. PHP的哪個MVC框架最值得推薦

1、Laravel,laravel這個框架很有意思,定時任務,數據遷移,大概你能在web中想到的功能這個框架都可以提供,它的路由借鑒了Ruby on Rails 和python的flask框架,但是還提供了web方面其它的一些功能,你可以把它想像成PHP中像Java一樣強大的Web中的瑞士軍刀,前提是你不考慮性能,因為它的實現使用了大量的閉包和反射,大概在PHP里嚴格引入設計模式的也只有這個了。
生產效率:5星
學習難度:5星(5星為最難,學習成本最高,下同)
性能:2星
社區活躍:4星(社區活躍可以很方便的找到別人已經開發的功能,專指中文文檔,組件豐富性)
2、ThinkPHP5,大概3年前研究過TP3源碼,使用起來簡單,因為自動載入的問題,性能是個坑,現在發展到5,個人認為已經是一個相當優秀的框架了,路由定義簡單,配置簡單,文檔豐富,社區也相當活躍
生產效率:5星
學習難度:1星
性能:4星
社區活躍:4星
3、Yii2,Yii2的路由分發跟TP5稍微有點不一樣,也使用了反射的功能,自動載入現在都使用的composer,大體上都差不多,都有延時載入,Yii2的路由相對智能一些,不用去手動維護,類似於TP3所以使用起來也是很方便,性能比TP5應該略差點,沒測試過,從源碼來看
生產效率:5星
學習難度:2星
性能:3.5星
社區活躍:4星(很多強大的組件,你只要下載就行了,會省很多事)
4、CakePHP,這個框架內部的封裝性看上去沒上面那幾個優美,但是它自己實現了use關鍵字功能,所以兼容性來看應該是比上面那幾個好點的,但這在新項目上應該不是問題,新項目上PHP7,啥都別想,准沒錯。它的路由定義類似於TP5但是稍微多點功能,不過其實是個雞肋。中文文檔就不說了,很不好找。不過也算是個相對簡單的框架嚴格遵循MVC
生產效率:3星
學習難度:3星
性能:4星
社區活躍:2星
5、Workman,這個框架相當強大,如果你要實現一些復雜的協議或者用php做一些websocket推送或者TCP/UDP伺服器的話,這個框架可能可以滿足你的需求,也有一些非同步的組件,比較高級的框架,初中級程序員可能用不上
生產效率:3星
學習難度:4星
性能:3星
社區活躍:2星
6、swool,這是個相當有意思的框架,性能很強大,旁友,你聽說過非同步編程的nodejs,python的tornado框架嗎,這個在php里做的就是一個這樣的事情,國內的一位老兄開發的C擴展,用php來非同步編程,看了下文檔,稍微做了個性能測試,相當優秀,就是不知道在項目中重度使用會不會踩到什麼坑,而且這也是一個相當高級的框架。大部分人可能直接轉node了吧,畢竟node生態環境已經相當好了,總之,如果你想用php試試非同步編程來提高性能,非這個框架莫屬。性能獨一檔,編程難度也相對高一些,你需要有些進程的理論基礎
生產效率:3星
學習難度:4星
性能:6星
社區活躍:2星
7、Yaf,鳥哥寫的c擴展框架,然而你要自己實現很多輪子,生態環境是個大問題。
生產效率:4星
學習難度:4星
性能:5.5星
社區活躍:2星
其它框架還沒怎麼了解,國內的話,根據具體業務,選上面幾個,沒錯。

J. 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的狀態發生了變化時的情況。