登录  /  注册
博主信息
博文 25
粉丝 1
评论 0
访问量 24654
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
MVC框架的原理
曲小冷
原创
2503人浏览过

MVC的工作原理以及目标就是将用户请求的URL映射到“控制器中的方法上”

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: 

  • Model(模型)表示应用程序核心(比如数据库记录列表)

  • View(视图)显示数据(数据库记录)

  • Controller(控制器)处理输入(写入数据库记录)

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

mvc.jpg

接下来通过代码来展示MVC框架的原理:

mvc.png

如图创建项目,首先创建 模型 文件也就是数据:Model.php

// M Model 数据,用模型 用二维数组模拟数据
$data = [
    ['id'=>1,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'],
    ['id'=>2,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'],
    ['id'=>3,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'],
    ['id'=>4,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'],
    ['id'=>5,'name'=>'老王','age'=>22,'email'=>'wang@qq.com']
];

接下来创建 视图模板 文件 显示数据:show.html

<table>
  <tr>
    <th>ID</th>
    <th>姓名</th>
    <th>年龄</th>
    <th>邮箱</th>
  </tr>
  <?php foreach($data as $staff): ?>
    <tr>
      <td><?=$staff['id']; ?></td>
      <td><?=$staff['name']; ?></td>
      <td><?=$staff['age']; ?></td>
      <td><?=$staff['email']; ?></td>
    </tr>
  <?php endforeach; ?>
</table>

接下来创建 控制器文件,方法内指定模板文件以及显示的数据:Staff.php

<?php
class Staff
{
    public function show($data){
        // 引入模板
        include __DIR__.'/../view/show.html';
    }
}

最后一步创建这个小MVC项目的入口文件:index.php

<?php
// 1、将用户请求的控制器和操作从URL地址中取出
$url = explode('/',$_SERVER['REQUEST_URI']);
$controller = ucfirst($url[3]);
$action = $url[4];

// 2、加载控制器类和模型类文件
require_once __DIR__.'/controller/'.$controller.'.php';
require_once __DIR__.'/model/Model.php';

// 3、调用控制器中的方法
echo (new $controller)->$action($data);

此时MVC文件以及入口文件创建完毕,通过本地虚拟主机创建的域名和MVC项目进行绑定,例如域名为 mvc.io

在浏览器的地址栏中输入:mvc.io/index.php/staff/show   当页面中出现以下界面则证明MVC项目创建成功

22.png

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学