php模型
『壹』 php MVC框架中modeL的作用
MVC概念来自传统的桌面软件开发,在那样的环境下,事件发生时,Model可以主动通知View,而这在HTTP协议里是不可能的(长连接comet除外啊)。长期以来,PHP业界对MVC框架中M和C的理解和运用都是不精细的(当然,够用就好,能满足绝大多数业务了)。这导致MC分层不清,PHPer在写代码的时候没有明确的规则,到底业务逻辑放在C里还是M里,常见的问题有:
C层承担职责过多,如,赞一个答案是给对应回答者加声望,写到C里面去了
M层太单薄,就继承一下框架的Model(或者DB类),实现数据库的增删查改
非数据库操作(如调用微博OpenAPI)只好包装到Util类
用户输入($_GET,$_POST)全局乱跑,M层和Util里都有
由于大部分场景下,PHP都用来做Web应用,而且是Database Driven Application,所以,各类Database Driven的快速开发框架也应运而生,比如说,CakePHP的Model类干脆就定义了CURD几个针对数据表的操作,Qcodo直接根据数据表结构自动生成MVC三层的脚手架代码。
我理解的PHP应用是5层结构,M层应再拆分为Biz Model,DAO,Infrastructure,贴几幅图片:
『贰』 php 做的网页预览三维模型的方法
1.如果选择图片后就上传了,可以让提交的form 的target指向一个iframe,就不会做整个页面的刷新
2.如果是不想上传,只是预览,可以用js。
『叁』 PHP模型是干什么的
一般指数据库操作,当然也可以使其他的!将操作数据库(可以是具体的表)的一些方法集中一起就形成的模型。
『肆』 ThinkPhp模型实例化报错,找不到Model类
$user=D('User');
『伍』 thinkphp 模型类的作用
一般情况下是一个表对应一个model类,不用也是可以的。
至于你说的简化代码,给你举个例子:
比如说你有一个user表,里面有 id name pass time(登录时间),对其的操作页面有注册,登录,修改密码等等
如果你要使用M来进行实例的话,不管是注册还是干啥,你每次都要对提交过来的信息是否合法进行一个验证,time时间每次都要使用time()函数来重新生成以下
但是如果你使用了model,使用D来实例化,这些信息的验证,和time()的完成都可以写到model中,就不用在上面说的那些页面当中一一进行操作验证或者添加了。
classUserModelextendsModel
{
//使用下面的这些可以很方面对user表进行操作,省去了多次对表进行操作时候所书写的验证和完成之类的代码。
//自动验证
protected$_validate=array(
array('name','require','用户名不能为空'),
array('name','','用户名已存在',0,'unique',1),
array('user_pwd','require','新密码不能是空',0,'',2),//只更新时验证
);
//自动完成
protected$_auto=array(
array('addtime','time',1,'function'),
);
//上面的一些规则可以参考自动完成和自动验证的规则,需要调用函数的时候,在下面自己再添加自定义的函数
}
『陆』 thinkphp 模型与控制器有什么区别没搞懂
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。
视图 :视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序
中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe
Flash和象XHTML,XML/XSL,WML等一些标识语言和Web
services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理
发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
模型 :模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion
Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于
模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器 :控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
『柒』 就关于PHP一个的模型层的问题
你需要操作user表就建一个user.class.php的类文件放在model中,在控制器中实例化user类,user类自动加载配置文件连接数据库 。 模型层可以写一下方法,提供给控制器用,减少重复!
『捌』 PHP中的模型是什么啊有什么用处啊
模型是model的意思,主要是在mvc架构中存在的一层,其作用是方便管理调用。例如你要调用用户信息,每次都学查询语句肯定繁锁。而且代码重复量大,这时模型就可以解决这个问题。把方法写在模型里,然后在控制层调用便可
『玖』 php 模型中开始定义的变量怎么连接
thinkPHP 只是一个框架而已,由MVC结构、一些实用的组件、类库等构成,你应该把他当作工具来使用。它提供的功能如果能满足你的需求,你就使用;不能的话,你可以自己添加或创造,你也可以再换一个适合你的框架(YII、CI、Laravel等等)。
thinkPHP框架还是很灵活的,MVC结构还算合理(只是M层更多的偏向DAO,应该是借鉴了许多JAVA框架的特点)。如果你想学习thinkPHP框架,建议你多参考官方的文档以及分析框架的源码。
如果只是想在模型中对一些数据进行简单的判断,不需要读取数据库中的数据,可以使用thinkPHP的虚拟模型:
1、继承Model类
1
2
3
4
namespace Home\Model;
Class UserModel extends \Think\Model {
Protected $autoCheckFields = false;
}
设置autoCheckFields属性为false后,就会关闭字段信息的自动检测,因为ThinkPHP采用的是惰性数据库连接,只要你不进行数据库查询操作,是不会连接数据库的。
2、不继承Model类
1
2
3
namespace Home\Model;
Class UserModel {
}
这种方式下面自定义模型类就是一个单纯的业务逻辑类,不能再使用模型的CURD操作方法,但是可以实例化其他的模型类进行相关操作,也可以在需要的时候直接实例化Db类进行数据库操作。