当前位置: 首页 > news >正文

雷林鹏分享:YII 模型-视图-控制器(MVC)设计模式

  Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式。 MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他。 在 MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等; 控制器则管理模型和视图中的通信。

  除了 MVC, Yii 还引入了一个前端控制器,叫做 应用,它表示请求处理的执行上下文。 应用处理用户的请求并将其分派到一个合适的控制器以继续处理。

  下面的示意图展示了 Yii 应用的静态结构:

  一个典型的工作流

  下图展示了一个 Yii 应用在处理用户请求时典型的工作流。

  1、用户发出了访问 URL http://www.example.com/index.php?r=post/show&id=1 的请求, Web 服务器通过执行入口脚本 index.php 处理此请求。

  2、入口脚本创建了一个 应用 实例并执行。

  3、应用从一个叫做 request 的 应用组件 中获得了用户请求的详细信息。

  4、应用在一个名叫 urlManager 的应用组件的帮助下,决定请求的 控制器 和 动作 。在这个例子中,控制器是 post,它代表 PostController 类; 动作是 show ,其实际含义由控制器决定。

  5、应用创建了一个所请求控制器的实例以进一步处理用户请求。控制器决定了动作 show 指向控制器类中的一个名为 actionShow 的方法。然后它创建并持行了与动作关联的过滤器(例如访问控制,基准测试)。 如果过滤器允许,动作将被执行。

  6、动作从数据库中读取一个 ID 为 1 的 Post 模型。

  7、动作通过 Post 模型渲染一个名为 show 的 视图。

  8、视图读取并显示 Post 模型的属性。

  9、视图执行一些 小物件。

  10、视图的渲染结果被插入一个 布局。

  11、动作完成视图渲染并将其呈现给用户。(编辑:雷林鹏 来源:网络 侵删)

转载于:https://www.cnblogs.com/linpeng1/p/10861775.html

相关文章:

  • 你是零基础,该如何经营好一个网站
  • cordova 项目打包开发
  • XMLHttpRequest对象用法
  • python while/for
  • 森拓气液增压缸什么时候更换液压油_具体步骤
  • Entity Framework 丢失数据链接的绑定,在已绑好的EDMX中提示“Choose Your Data Connection”...
  • Mybatis3.x与Spring4.x整合
  • VRSCANS改变了PX集团的汽车渲染
  • Codeforces 535B Tavas and SaDDas 数位DP
  • 分布式事务
  • C# 深浅复制 MemberwiseClone
  • poj_1741——树的分治
  • vue中使用axios等异步方法this指向的问题
  • 教你学会Suse启动cron的方法
  • 关于BETA、RC、ALPHA、Release、GA等版本号的意义
  • 分享一款快速APP功能测试工具
  • 《深入 React 技术栈》
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【面试系列】之二:关于js原型
  • 【译】理解JavaScript:new 关键字
  • CODING 缺陷管理功能正式开始公测
  • go语言学习初探(一)
  • Gradle 5.0 正式版发布
  • Java方法详解
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • leetcode46 Permutation 排列组合
  • vue脚手架vue-cli
  • Web标准制定过程
  • 从输入URL到页面加载发生了什么
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 实现简单的正则表达式引擎
  • puppet连载22:define用法
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #HarmonyOS:Web组件的使用
  • #NOIP 2014# day.2 T2 寻找道路
  • #QT(TCP网络编程-服务端)
  • #Ubuntu(修改root信息)
  • (C11) 泛型表达式
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • ./和../以及/和~之间的区别
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net操作Excel出错解决
  • .Net多线程Threading相关详解
  • .NET基础篇——反射的奥妙
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @selector(..)警告提示
  • @Transactional 详解
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • []指针