從放棄到入門-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的一些內建類
相關文章
相關標籤/搜索