从放弃到入门-Yaf(细说model)

上一篇文章中我们一起研究学习了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里面有些什么:

<?php
/**
 * @name SampleModel
 * @desc sample数据获取类, 可以访问数据库,文件,其它系统等
 * @author mateng
 */
class SampleModel {
    public function __construct() {
    }   

    public function selectSample() {
        return 'Hello World!';
    }

    public function insertSample($arrInfo) {
        return true;
    }
}复制代码

我们现在看到的前面几行是一些注释,虽然是注释,但是对我们了解框架,了解程序有很大的帮助,那么我们现在看看鸟哥在这里对我们说了些什么:

  • @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();。看代码:

<?php
/**
 * Created by PhpStorm.
 * User: mateng
 * Date: 2017/11/10
 * Time: 上午12:08
 */
class HelloController extends Yaf_Controller_Abstract {

    public function indexAction($name = "Stranger") {

        $model = new UserModel();

        exit;

        $this->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;复制代码

然后我们运行:http://localhost/lbxd/public/index.php/index/hello/index

好了我们今天的文章就到这里了,那么下一篇我们来一起研究一下: yaf的一些内建类

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值