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

上一篇文章中咱们一块儿研究学习了yaf的简单工做流程与控制器以及视图部分,而后在视图模板中打印输出了:hello,Controller!,也就是经过输出hello,Controller!的例子,咱们把MVC中的,C与V过了一遍。还有M咱们没有详细学习,那么今天咱们一块儿来研究学习一下M吧,那么如今就开始吧。php

我眼中的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;
    }
}复制代码

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

  • @name SampleModel 首先是这个类的名字,从命名规则能够看出命名方式为:文件名+Model组成的。如:User.php的类名应该是:UserModel。
  • @desc sample 这个类的一些说明,如:获取数据、处理文件等。

咱们继续看下面,下面就是咱们的代码主体了,在这里它没有继承其余类,并且类名的命名方式是:驼峰式命名法。
那么咱们看看这个model类里面有些什么方法:架构

  • 首先咱们看到里面是一个构造方法,而后在这里咱们能够加载一些类或者配置文件等。
  • 接下来是selectSample()方法,看这个意思不用多说确定就是数据的查询了。
  • 最后还有一个insertSample()方法,这个方法传入了一个数组:$arrInfo 这个方法看字面意思是写入数据等操做。

咱们如今大体了解了Sample这个类了,以及他的写法,那么咱们如今建立一个新的类。就取名User.php吧。mvc

建立User.php

咱们如今在models目录下面建立一个User.php文件,里面写一个类,并且类的名字是文件名+Model。咱们看目录结构:
app

咱们在 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的一些内建类
相关文章
相关标签/搜索