博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从放弃到入门-Yaf(细说model)
阅读量:6949 次
发布时间:2019-06-27

本文共 1666 字,大约阅读时间需要 5 分钟。

上一篇文章中我们一起研究学习了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的一些内建类

转载地址:http://ipenl.baihongyu.com/

你可能感兴趣的文章
创建自定义数据源
查看>>
嵌入式linux------SDL移植(am335x下显示yuv420)
查看>>
【原创】erlang 模块之 epmd
查看>>
备用java方法
查看>>
有状态的 web 应用
查看>>
System V 消息队列
查看>>
管道和FIFO
查看>>
Use Excel Pivot Table as a BI tool
查看>>
QDialog之屏蔽Esc键
查看>>
Cocos2d-x-v3场景切换
查看>>
[置顶]白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现
查看>>
HotSpotVM 对象机制实现浅析#1
查看>>
[android]android自动化测试
查看>>
为代码签名,供后人瞻仰或唾弃,你敢吗?
查看>>
Java笔记:集合框架实现原理
查看>>
用Objective-C写了一个简单的批量更改文件名的程序
查看>>
建立JDBC的环境配置和相关下载(Mac)
查看>>
Android 使用ViewPager结合PhotoView开源组件实现网络图片在线浏览功能
查看>>
GNU Radio中的数据元(Metadata)
查看>>
【JSP开发】URL路径的规范
查看>>