Blogger Information
Blog 39
fans 0
comment 0
visits 34103
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
简单的MVC操作流程的案例--2019/08/06
LISTEN的博客
Original
798 people have browsed it

按照你的理解, 写一个简单的MVC操作流程的案例, 要求:
1. 使用真实的数据表中的数据;
2. 要求在构造方法中实现模型与视图的对象依赖注入


1、Model.php

实例

<?php
// 模型类: 用于数据库操作,数据访问

class Model
{
    protected $pdo;
    public function __construct()
    {
        $this->pdo=new \PDO('mysql:host=localhost;dbname=listen0724','root','root');
    }

    public function getData()
    {
        $sql='select `detail_id`,`name`,concat(left(`detail`,30),\'...\') as `detail` from `details`';
        $stmt=$this->pdo->prepare($sql);
        $stmt->execute();
        $res=$stmt->fetchAll(\PDO::FETCH_ASSOC);
        return $res;
    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


2、View.php

实例

<?php
// 视图类: 渲染数据

class View
{
    public function fetch($data)
    {
        $table = '<table border="1" cellspacing="0" align="center" cellpadding="3" width="800" style="text-align: center">';
        $table .= '<caption>信息列表</caption>';
        $table.=' <thead><tr bgcolor="#00F7DE"><th>序号</th><th>名称</th><th>详情</th></tr></thead>';
        $table.= '<tbody >';

        foreach ($data as $detail){
            $table.='<tr>';
            $table.='<td>'.$detail['detail_id'].'</td>';
            $table.='<td>'.$detail['name'].'</td>';
            $table.='<td>'.$detail['detail'].'</td>';
            $table.='</tr>';
        }
        $table.='</tbody></table>';

        return $table;

    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


3、Controller.php

实例

<?php
// 控制器2: 依赖注入

// 加载模型类
require 'Model.php';

// 加载视图类
require 'View.php';

// 控制器类
class Controller
{
    protected $model;
    protected $view;

    // 注入点是一个构造方法
    public function __construct(Model $model,View $view)
    {
        $this->model=$model;
        $this->view=$view;
    }

    public function index()
    {
        // 1获取数据
        $data=$this->model->getData();

        // 2渲染模板
        return $this->view->fetch($data);
    }
}

// 客户端调用
$model=new Model();
$view=new View();

$controller=new Controller($model,$view);
echo $controller->index();

运行实例 »

点击 "运行实例" 按钮查看在线实例


运行结果:

1.png

Correction status:qualified

Teacher's comments:还是自己写不出来呀, 全靠教学代码撑着了, 长此下去不行
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post