1. 谁能帮我解释下php的MVC框架呀用通俗易懂的语言吧,我是小白, 感激不尽!
我说个最通俗的把(大神别喷)
所谓的mvc,其实就是把代码分开写
一个正常的网页,肯定是先有php运算,然后再有html显示,你把php运算和html显示,用2个文件分开写,就有了最简单的模板分类的概念
MVC一样的意思,就是把模型控制器之类的分开写,分开写的好处很多,在这里不多说,道理想想就明白,细分后分配工作就简单
2. 简述MVC思想与PHP如何实现MVC
简单的说就是将网站源码分类、分层。
MVC三个字母的含义:
M:Model 模型,负责数据库操作。
V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果。
C:Controller 控制器,程序的入口,决定改调用哪个View,并告诉View该做什么。
如此说来,程序的执行顺序是C-V-M 或 C-M ,和MVC的名字正好相反。
3. 如何入门一个PHP MVC框架
一。选择 一个框架
至于选哪一种框架,主要看个人,1)最好是身边朋友都有人在用,因为你不懂的时候方便解决。有时候论坛,手册上的解答你未必理解的通透,特别是没有接触过框架的phper来说,更是不知所云。2)选择此框架论坛比较活跃的,这是身有同感,前一段时间玩qeephp框架的时间,论坛冷冷清清的,工作需要,没办法,只能硬着上了,遇到问题的时候,回答的问题的人很少,同时手册之类只写了某部分,还有很多部分并没有写上去。对于一个新手来说,直接KO了。
二。熟悉数据库的操作
每一个框架都有自己的操作方法,这是必须要学会的。select,delete,insert,update这几种用法摸熟。最快的方法是看手册,查找对应的操作。同时要知道其中的调试方法,你就可以看到原生的操作有没有错误。基本都会了,这个框架至少可以开始开发项目了。
三。论坛官方网站
这个很重要,先看手册,遇到问题先在论坛里查找一下有没有人遇到过你这种情况,有就不用发问了。然后同一个问题,很少人再去回答一遍。有时候遇到自己能解决的问题,也回答一下,这样可以加深你的理解,不要觉得浪费你的时间,这前提是你有时间的情况下。所以本着人人为我,我为人人的精神
四。下载一个案例。
我经常是这样,不知道某个功能怎样调用的时候,直接找案例里相对应的功能看代码,看人家是怎样调用的,再加上自己的见解。
五。手册的类
MVC一般都有自带一些类了,方便用户操作,有了自己就不用再写对应的代码了。
六。要有“拿来主义”精神
别人的东西,你自己融会贯通了,东西就是你的了。
4. 什么是MVCPHP
MVC由Model(模型),view(视图)和Controller(控制器)组成,PHP MVC可以更高效地管理好3个不同层的PHP代码。
Model:数据信息存取层。
View:view层负责将应用的数据以特定的方式展现在界面上。
Controller:通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
5. 深入了解php框架mvc设计模式的原理
现在的PHP框架太多了,如yii codeigniterlaravel thinkphp 一看文档就一大堆英文资料,学也学不过来,可是上班时候公司要求你会这个,有的要求你会那个,看书上的理论又假大空,不知道在说什么东西,看实际的例子代码又太复杂庞大,所以今天就做一个简单的小例子主要来给中级阶段的php同学了解MVC的共同原理,了解这些原理自己也可以设计一个mvc 框架
先创建一个主流框架的目录,包含控制器,数据模型,视图显示,3个文件夹,和一个入口文件
现在来设计一个路由地址,http://localhost/mvc/index.php?c=控制器名&a=方法名¶m=参数名;然后写在入口文件里的获取路由的代码,如下图所示,这样写就能获取不同的控制器名字和不同的方法,由入口文件获取这些控制器和方法名,参数后就传入指定的控制器方法名中
现在写控制器的类和方法,便于接受入口文件传入的值,控制器的作用就是协调调用数据处理和显示样式
现在来写好数据处理类,数据处理主要是依靠mysql等和视图显示类,视图主要就是把内容显示出来,一般由smarty代替,数据处理文件名model.php,视图显示index.php
现在输入http://localhost/mvc/index.php?c=控制器名&a=方法名¶m=参数名 看他们都显示出来了,一个简单的框架就完成了,大家有机会自行扩展吧!
那么控制器和视图,数据的关系是什么呢?一般具体中是从入口文件得到用户输入的控制器和方法名,参数,再传给用户指定的控制器,再由控制器(a)把参数传给数据处理(m),m处理后返回给a,a 将得到的内容传给视图显示(v),v再把他显示出来。这只是一个简单的MVC设计模式而已,大家可以在这上面设计出比较复杂的MVC模式
6. 什么是MVC以及PHP怎样实现MVC
其实你的问题一开始就问错了,即然你问了,我就随便说说好了。
MVC 是一种设计风格,并不是一种具体手法。每个人写代码都有自己习惯的一种设计风格。MVC 是应用程序开发常用的一种风格,实际上并不适合 PHP,因为 PHP 的工作环境注定了它很难做出像样的控制器,也就是 Controll 。
MVC 本来的设计风格是:整个系统由一个程序启动,再根据用户操作调用各个处理模块,根据数据结果来决定显示成什么样给用户看。就像我们平时用的各种程序的主界面。这样程序员创建好主程序以后,只要把注意力集中在开发各个子功能上就可以了。。
可是 php 大多数情况下工作于 web 环境,有“页”的概念,每次执行都是一个新的请求。这就注定了很难实现真正的 MVC,因为用户看到页面时,PHP 已经执行完了,不可能再切换去调另一个 模型M 和 视图V 。
目前自称 MVC 的各种框架。也只不过是用一个程序判断请求,加载不同的功能块。只能称之为“单点入口”,在思路上是“请求相同的部份,而包含不同的部份”。这个入口程序实际上啥也没做,所以算不上是 MVC。反而 JS 开发的富客户端更接近一些。由一个 JS 主程序,跟据用户请求决定调用哪些数据,再把界面改变成什么样。
设计风格是前人总结出来的东西,在当前语言,当然环境,当前思维方式下。比较容易继续思考的一种设计方式。MVC 只不过是其中一种,而且并不是最适合 PHP 的一种。偏偏被炒作得好像标准似的。。
如果你一定要, 就去看一下 “PHP 单点入口实现”吧,已经是比较接近的东西了。如果一次性的控制器也能算控制器的话……
7. 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> ";
$links.="<ahref='#'>LinkB</a> ";
$links.="<ahref='#'>LinkC</a> ";
return$links;
}
}
View.php
classView{
publicfunctiondisplay($output){
//ob_start();
echo$output;
}
}
8. PHP程序,不用框架,如何写成MVC模式的程序呢
至于M层,即model层,是要对数据库的操作即一些数据相关操作,可以单独抽
出来封装函数或者是一个类,由C层调用其中的方法来实现与页面交互的操作请
求,所有接受或者受到的数据经过C层调用M层进行操作,并反馈C层,提示在V
层; 通俗点讲,就是说你把一些具体的方法及操作数据库的执行方法都封装成
函数或者类,在另一个文件中,然后由C层去引用调用或者继承,从而实现传统
的MVC。