博客列表 >简单MVC设计

简单MVC设计

无耻的鱼
无耻的鱼原创
2018年05月11日 11:41:29821浏览

MVC是最经典,也是最流行的Web项目设计思想

M:Model模型层,用来实现也数据库相关的操作

V:View视图层,用来实现用户界面与数据展示

C:Controller 控制器层,根据视图层的要求选择合适的模型

效果图

123.png

文件路径

1.png

下边看代码

controller文件夹里的代码

这个文件是通俗的理解就是将下边两个文件里的代码引入执行操作


实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 */

namespace mvc\controller;

class Controller
{
    public function get(){

        require './model/Model.php';


        $a = new \mvc\model\Model('php','root','root');
        $aa =$a->select('aaa');

        $aaa = $a->result;

        require './view/View.php';

        $b = new \mvc\view\View($aaa);
        $bb = $b->getData();
        $b->display($bb);
    }
}

运行实例 »

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

model文件夹

这个文件执行的是数据库操作,或者数据收集,index文件是测试


model.php实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 */

namespace mvc\model;

class Model
{
    public $pdo = null;

    public $result = [];

    public function __construct($dbname,$user,$pass)
    {
        //数据库连接
        $this->pdo = new \PDO('mysql:host=127.0.0.1;dbname='.$dbname,$user,$pass);
    }

    //执行查询,获取结果集
    public function select($table)
    {
        //创建预处理语句
        $stmt = $this->pdo->prepare("SELECT * FROM {$table} ;");

        //执行查询

        $stmt -> execute();

        //解析结果集:将复制过来的 $result 替换成成 $this->result
        $this->result = $stmt -> fetchAll(\PDO::FETCH_ASSOC);
    }


}

运行实例 »

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


index测试 实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 * 测试Model
 */

require 'Model.php';
use mvc\model\Model;

$a = new Model('php','root','root');
$a->select('aaa');
print_r($a->result);

运行实例 »

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


view文件夹

这个文件夹操作的是数据处理,就是把后台处理好的数据,在这里弄成展示模板


View实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 */

namespace mvc\view;

class View
{
    public $data =null;

    public function __construct($data)
    {
        $this->data = $data;
    }

    public function getData()
    {
        return $this->data;
    }

    public function display($da)
    {

        $table = '		
	<style type="text/css">
		table,th,td {
			border:1px solid black;
		}

		table {
			border-collapse: collapse;
			width: 60%;
			margin: 30px auto;
			text-align: center;
		}
		table tr:first-child {
			background-color: lightgreen;
		}
		table caption {
			font-size:1.5em;
			margin-bottom: 15px;
		}
	</style>
	
	<table>
		<caption>员工信息表</caption>
		<tr>
			<th>ID</th>
			<th>姓名</th>
			<th>年龄</th>
			<th>工资</th>
		</tr>';

        foreach ($da as $staff) {
            $table .= '<tr>';
            $table .=  '<td>'.$staff['id'].'</td>';
            $table .=  '<td>'.$staff['name'].'</td>';
            $table .=  '<td>'.$staff['age'].'</td>';
            $table .=  '<td>'.$staff['money'].'</td>';
        }

        $table .= '</table>';

        echo $table;


    }
}

运行实例 »

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


index 测试 实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 */

require '../model/Model.php';
use mvc\model\Model;

$a = new mvc\model\Model('php','root','root');
$aa =$a->select('aaa');

$aaa = $a->result;



require '../view/View.php';
use mvc\model\View;

$b = new mvc\view\View($aaa);
$bb = $b->getData();
$b->display($bb);

运行实例 »

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

/************************************************************************************/

最后一个index文件就是执行操作controller的了

实例

<?php
/**
 * User: Z先生
 * Date: 2018/5/10
 */

require 'controller/Controller.php';
use mvc\controller;

$a = new \mvc\controller\Controller();

$a->get();

运行实例 »

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






声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议