上一篇文章中我们一起研究学习了yaf的简单工作流程与控制器以及视图部分,然后在视图模板中打印输出了:hello,Controller!,也就是通过输出hello,Controller!的例子,我们把MVC中的,C与V过了一遍。还有M我们没有详细学习,那么今天我们一起来研究学习一下M吧,那么现在就开始吧。
我眼中的MVC
在开始之前,我想和大家一起聊聊我所认识的mvc三层架构。mvc这个概念在互联网上众说纷纭,有好多种说法。
那么我和大家来分享一下我对mvc的认识:- M(模型)模型是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。比如:1)接收控制器传过来的数据然后进行处理,返回给控制器。2)进行数据存储,封装一些数据存储过程。以接口的形式暴露给程序员,提高编码效率。
- V(视图)视图模型主要的任务是:进行数据渲染,接收用户请求等
- C(控制器)主要是用于处理用户的交互。一般是通过视图接收用户传输过来的数据进行处理,并向模型发送数据。然后接收到模型发送过来的数据渲染给视图层。以上就是我对mvc的一些认识。那么我们现在一起看看yaf的model吧。
model
鸟哥在手册中已经说过,model类建议存放在:application/models,那么我们现在就打开我们的文件夹来看看,这个目录下面的Sample.php。
细说Sample.php
我们一起来看看Sample.php里面有些什么:
我们现在看到的前面几行是一些注释,虽然是注释,但是对我们了解框架,了解程序有很大的帮助,那么我们现在看看鸟哥在这里对我们说了些什么:
- @name SampleModel 首先是这个类的名字,从命名规则可以看出命名方式为:文件名+Model组成的。如:User.php的类名应该是:UserModel。
- @desc sample 这个类的一些说明,如:获取数据、处理文件等。
我们继续看下面,下面就是我们的代码主体了,在这里它没有继承其他类,而且类名的命名方式是:驼峰式命名法。
那么我们看看这个model类里面有些什么方法:- 首先我们看到里面是一个构造方法,然后在这里我们可以加载一些类或者配置文件等。
- 接下来是selectSample()方法,看这个意思不用多说肯定就是数据的查询了。
- 最后还有一个insertSample()方法,这个方法传入了一个数组:$arrInfo 这个方法看字面意思是写入数据等操作。
我们现在大致了解了Sample这个类了,以及他的写法,那么我们现在创建一个新的类。就取名User.php吧。
创建User.php
我们现在在models目录下面创建一个User.php文件,里面写一个类,而且类的名字是文件名+Model。我们看目录结构:
我们在 User.php这个model类中创建了一个构造方法,我们为了验证他有没有被我们加载。那么我们可以在上一篇文章中创建的 Hello.php控制器中载入一下它看看是否成功。 现在我们打开 Hello.php ,然后在 indexAction方法中我们 new UserModel();。看代码:getView()->assign("content", "Hello,Controller!"); return TRUE; }}复制代码
然后我们在User.php这个model类中在添加一个select方法,return一个数组:
public function selectUser(){ return ['id' => 1,'name' => 'perma']; }复制代码
然后我们在Hello.php控制器中调用这个方法:
$model = new UserModel();var_dump($model->selectUser());exit;复制代码
然后我们运行:
好了我们今天的文章就到这里了,那么下一篇我们来一起研究一下: yaf的一些内建类