MVC

MVC、MVP、MVVM三种模式的介绍及区别(代码例子说明) 主要介绍几种架构模式,以及之间的区别 阅读详情

1.概念理解

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

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

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

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

  • Controller(控制器)处理输入(写入数据库记录)。 MVC 模式同时提供了对 HTML、CSS 和 JavaScript
    的完全控制

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
    -View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

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

2.实践

2.1 smarty

将压缩包解压后,将libs 文件夹拷贝到项目的根目录下,并重命名为 smarty,然后在控制器类中引入 Smarty.class.php

创建模型类 NewsModel.php

<?php
class NewsModel
{
    function list() {
        $dns = "mysql:host=localhost;dbname=test";
        $user = 'root';
        $password = 'root';
        $pdo = new PDO($dns, $user, $password);
        $res = $pdo->query("select * from news");
        $news = $res->fetchAll(PDO::FETCH_ASSOC);
        return $news;
    }
}

创建控制器类,NewsController.php

<?php
include 'smarty/Smarty.class.php';
include 'NewsModel.php';
class NewsController
{
    // 显示所有的新闻数据
    public function index()
    {
        // 创建NewsModel类的对象
        $model = new NewsModel();
        $news = $model->list();
        // 创建Smarty 类的对象
        $smarty = new Smarty();
        $smarty->assign("news", $news);
        // 读取news.html文件的源代码,并发送给浏览器
        $smarty->display('news.html');
    }
}

2.2 list.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.css" rel="stylesheet">
</head>
<body>
  <div class="container">   
  <table class="table">
    <tr>
      <th>编号</th>
      <th>标题</th>
      <th>创建时间</th>
    </tr>
   {foreach $news as $item}
   <tr>
     <td>{$item['id']}</td>
     <td>{$item['title']}</td>
     <td>{$item['create_time']}</td>
   </tr>
   {/foreach}
  </table>
  </div>
</body>
</html>

在浏览中要直接访问控制器,因为控制器是模型与视图的桥梁

  • 控制器负责调用模型中的方法,查询数据
  • 控制器将模型中返回的数据分配给视图

但是我们无法在浏览器中直接访问某个控制器类中的具体方法

解决方案

在项目的根目录下,新建一个 index.php

在这个文件中,获取用户想要访问的控制器和方法名称,并进行调用

<?php
include 'NewsController.php';
// 获取请求的控制器名称
$c=$_GET['c'];
// 获取请求的方法名称
$a=$_GET['a'];
// 创建控制器类的对象
$ctrl=new $c();
// 调用请求的方法
$ctrl->$a();

说明:这个 index.php 有一个专业的名词:入口文件

地址栏中输入如下地址方法

http://localhost/index.php?c=newscontroller&a=index

MVC详解:什么是MVC,MVC工作原理,MVC优缺点以及为什么要使用MVC 一、什么是MVC Model:模型层 View:视图层    Controller:控制层 MVC (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一... 阅读详情

相关推荐

MVC架构

1、MVC简介   MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,最早为Trygve Reenskaug 提出,为施乐帕罗奥多研究中心(Xerox PARC)的Smalltalk语言发明的一种软件设计模式。   MVC结构是位那些需要为同样的数据提供多个视图的应用程序而设计的,通过把职责、性质相近的成分归结在一起,不相近的进行隔离,把软

胡根得 天行健,君子以自强不息。 2027

MVC模式简介

MVC模式一.MVC是什么二.优缺点2.1 MVC模式的优点2.1.1 低耦合2.1.2 重用性高2.1.3 生命周期成本低2.1.4 部署快2.1.5 可维护性高2.1.6 有利软件工程化管理2.2 MVC模式的缺点2.2.1 没有明确的定义2.2.2 不适合小、中型应用程序2.2.3 增加系统结构和实现的复杂性2.2.4 视图对模型数据的低效率访问 一.MVC是什么 MVC 模式(Model–view–controller)是软件工程中的一种软件架构模式,它把软件系统分为三个基本部分:模型(Model)

weixin_45808737的博客 1万+

MVC习题

习题 一、填空题 (1) MVC设计模式将应用程序按用户界面的功能划分为模型、视图和_____控制器_____3个模块。 (2) 三层架构里的__________主要是对业务实体数据的加工,把加工后的数据传给页面显示。 (3) ASP.NET MVC的前身是__________,是受到Ruby on Rails的灵感启发。 (4) __________命名空间包含表示控制器、控制器工厂、

尼奥 2701

MVC介绍

1.什么是MVC MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。把众多的业务逻辑聚集到一个部件里面,当然这种比较官方的解释是不能让我们足够清晰的理解什么是MVC的。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。 2.为什么要使用MVC 程序通过将M(Model)和V(View)的代码分离,实现了前后端代码的

weixin_44171249的博客 2万+

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2631

Proteus仿真实战:基于IIC驱动SSD1306的0.96英寸OLED显示方案解析

本文详细解析了在Proteus仿真环境中基于IIC驱动SSD1306的0.96英寸OLED显示方案。从硬件搭建、IIC接口连接、软件驱动移植到常见问题排查,提供了全面的实战指导,帮助开发者快速实现OLED显示功能并优化性能。

weixin_28724661的博客 772

什么是MVC

什么是MVC1、什么是MVC2、代码层面理解(1)pom依赖(2)编写一个Servlet类,用来处理用户的请求(3)编写Hello.jsp,在WEB-INF目录下新建一个jsp的文件夹,新建hello.jsp(4)在web.xml中注册Servlet(5)配置Tomcat,并启动测试3、小结 1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范,是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向

weixin_45920385的博客 3万+

FOC:【1】浅析SVPWM算法(七段式)以及MATLAB仿真验证

最近的科研项目需要使用到SVPWM算法,网上相关的原理介绍很多。对于纯应用的需求来说,或许有些内容上的冗余。 本文的目的就是简要并且明确的给出具体的计算步骤,可以帮助快速上手。同时利用MATLAB进行了简单算法验证。.....................

Alex的技术博客 1万+

MVC架构详细介绍与分析

MVC架构详细介绍以及通过实例了解并实现MVC架构

ccjjjjdff的博客 1万+

国内网络环境下Leaflet加载OpenStreetMap地图的5种替代方案(附可用瓦片地址)

本文针对国内网络环境下Leaflet加载OpenStreetMap地图的常见问题,提供了5种可用的瓦片替代方案,包括OpenStreetMap.fr HOT、OpenStreetMap.de、CartoDB、Stamen和Thunderforest,并附上详细的代码示例和选择建议,帮助开发者解决地图加载问题。

qsc901234的博客 1695

2022年TI杯模拟电⼦系统设计专题邀请赛——李萨如图形演示装置

本次装置主要是对输入的正弦信号进行频率变换,并将原输入正弦信号作为 X 轴信号、变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。采用 EK-TM4C123GXL 板卡作为主控;频率变换采用“锁向环+计数器”实现 1-5 倍频的频率变换控制;李萨如图形采用两个 AD通道采集原输入的正弦信号作为 X 轴信号和频率变换后的正弦信号作为 Y 轴信号,绘制李萨如图形。

qq_45890466的博客 7769

C#中MVC详解及MVC搭建

约定大于配置:恶心的“配置文件地狱”,基础阶段按照默认配置来,先不管复杂、难懂的“路由”等。

邻家小哥哥的博客 2万+

手把手教你学SIMULINK模块库文件专栏-From Workspace 模块详解

模块是 Simulink 中的一个信号源模块,用于从 MATLAB 工作区加载数据作为输入信号。该模块允许用户将预先在 MATLAB 中生成的数据(如时间序列、矩阵或结构体)导入到 Simulink 模型中,从而实现更灵活的信号输入和仿真控制。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常灵活的工具,适用于需要从 MATLAB 工作区加载数据的各种场景。

MHD0815的博客 633

自学MVC看这里—全网最全的MVC教程

MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的 MVC 框架知识,Let’s go! 1. Why :为什么需要ASP.NET MVC本章主要...

weixin_37464332的博客 1万+

RT-DETR改进策略【Conv和Transformer】| ICCV-2023 iRMB 倒置残差移动块 轻量化的注意力模块

本文记录的是利用模块优化的目标检测网络模型。的作用在于克服了常见模块无法同时吸收CNN 效率建模局部特征和利用Transformer 动态建模能力学习长距离交互的问题。相比一些复杂结构或多个混合模块的方法,能更好地权衡模型成本和精度。本文将其用于的模型改进和二次创新,更好地突出重要特征,提升模型性能。Rethinking Mobile Block for Efficient Attention-based Models从微观角度看,由和组成。及其改进的实现代码如下: 四、创新模块 4.1 改进点1⭐ 模块

Limiiiing的博客 816

AHB—SRAMC项目(结构图,核心代码、Testbench架构)

文章目录一、AHB_SRAMC项目介绍1.1.AHB总线控制单元(ahb_slv_if.v)1.2.SRAM控制单元(sramc_top.v)1.3.主要的传输路径二、结构框图2.1.AHB_SRAMC结构图(重点)2.2.总线控制单元与SRAM控制单元结构图三、部分核心代码(重点理解)四、SystemVerilog Testbench架构(重点)五、目录结构 一、AHB_SRAMC项目介绍 本项...

Mr.翟的博客 3万+

自学MVC看这里——全网最全ASP.NET MVC 教程汇总

MVC架构已深得人心,微软也不甘落后,推出了ASP.NET MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASP.NET MVC 框架知识。与此同时,小编也推荐一款轻量级控件Compone...

3170

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MVC2 ,MVC3 ,MVC4,MVC5的区别

2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版 MVC3 需要.net framework 4.0 版本. 支持多视图引擎 在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango. 控制器的改进 全局...

carcarrot的博客 1945

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MVC,Spring MVC

模型-视图-控制器(MVC)是⼀个众所周知的以设计界⾯应⽤程序为基础的设计思想。它主要通过分离 模型、视图及控制器在应⽤程序中的⻆⾊将业务逻辑从界⾯中解耦。通常,模型负责封装应⽤程序数据 在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来⾃⽤户的请求, 并调⽤后台服务(service或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了⼀些数据在视 图层展示。控制器收集这些数据及准备模型在视图层展示。

2201_76034461的博客 859

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【MVC框架】——什么是MVC框架

    学习了经典三层之后,觉得任何一种框架都不再是难的,无论怎样,都需要连接数据库、业务逻辑处理、显示。其余的无非就是给三层解耦合,解耦合越到位,这个框架就越容易被接受。       百度百科:MVC全名是Model View Controller,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需...

Coder Yasmine 1万+

Spring MVC框架中的MVC是什么

本文深入解析了SpringMVC框架中MVC设计模式的应用。首先介绍了MVC模式的基本概念及其在Web开发中的价值,包括模型、视图和控制器的职责划分。重点阐述了SpringMVC的实现机制,围绕DispatcherServlet的核心处理流程,详细说明了HandlerMapping、HandlerAdapter等组件的作用。通过对比MVC与MVVM、MVP等模式,分析了各自的适用场景和优缺点。文章还结合SpringBoot的简化特性,提供了分层架构设计、异常处理等最佳实践,并给出一个完整的用户管理系统实现案

持续输出Java相关知识 1240

讲一个MVC的故事

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 是什么? MVC全名是Model View Controller,是模型----视图---控制器的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发...

至尊宝 2万+

什么是java mvc模式_什么是MVC?

什么是MVC?JavaWEB MVC一、MVC设计模式二、三层架构三、三层架构和MVC的区别与联系什么是MVC?MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。用一种业务逻辑、数据、界面显示分离的方法,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。...

weixin_36238982的博客 6357
上一篇: 面向对象之单例模式
下一篇: Laravel框架实现案例之文章CRUD(文章增删改查)
Web_front
博客等级 码龄7年 5粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值