Yii是一个基于组件、用于开发大型 Web 应用的 高性能 PHP 框架。采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性。Yii官方下载

包含特性

1. MVC、DAO/ActiveRecord、I18N/L10N、caching

2. 基于 JQuery 的 AJAX 支持、用户认证和基于角色的访问控制

3. 脚手架、输入验证、部件、事件、主题化以及 Web 服务等等

在我们的程序开发中,为了缩短开发时间,也经常使用Yii来代替一些原生的代码编写。

Yii运行原理

要想深入的学习一项框架,必须先要了解它的运行原理。

不管你是无意还是有意,我们的应用程序总可以按MVC模式进行划分。Yii中比较常用的也是MVC模式,不过它是在这种模式之上又添加了前端控制器,名为“应用”。应用处理用户的请求并将其分派到一个合适的控制器以继续处理。

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. 动作完成视图渲染并将其呈现给用户。

而普通MVC框架是把控制器作为应用程序核心,当用户发出请求后,入口脚本会直接根据用户请求分配控制器并执行相应的动作,并创建对应模型,控制器把查询数据跟视图组合后再返回给用户。但是在做大型WEB程序时,效率会偏低。

所以,Yii对一些运行效率较高的项目还是比较适合的。

php yii框架原理,Yii框架快速入门[Yii简介及运行原理]相关推荐

  1. Quartz 框架快速入门(二)

    尽可能的用声明式处理软件配置,其次才考虑编程式的方式.在上一篇<Quartz 框架快速入门(一)>中,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译.这种方 ...

  2. Quartz 框架快速入门(四)

    Spring的scheduling.quartz包中对Quartz框架进行了封装,使得开发时不用写任何QuartSpring的代码就可以实现定时任务.Spring通过JobDetailBean,Met ...

  3. Quartz 框架快速入门(三)

    在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Schedul ...

  4. 【完结】给新手的12大深度学习开源框架快速入门项目

    文/编辑 | 言有三 这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpen ...

  5. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

    第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定 ...

  6. 微信小程序wepy框架快速入门

    微信小程序wepy框架快速入门 微信小程序简介 微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一 ...

  7. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  8. MyBatis框架快速入门

    MyBatis框架快速入门 入门案例 创建一个关于Mybatis项目 首先创建一个空项目,然后新建一个moudle,选择quickstart,接下来把模块放到空项目之下.即可 实现mybatis查询数 ...

  9. Go语言Web框架:Beego框架快速入门

    文章目录 Beego框架快速入门 1.beego框架了解 2.MVC架构 3.环境搭建 4.beego的项目结构分析 5.Beego快速体验 6.Beego运行流程分析 7.Post案例实现 7.1前 ...

最新文章

  1. 2006校园流行语锋线排行TOP10
  2. 计算机应用基础形成性考核册答案,2019年最新(电大秋)计算机应用基础形成性考核册题目及答案.doc...
  3. 谈一谈Spring-Mybatis在多数据源配置上的坑
  4. 作业调度框架_Quartz
  5. SVN四部曲之SVN简单使用教程入门
  6. Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
  7. php 随机在文章中添加锚文本_锚文本对网站SEO优化有什么帮助?
  8. 搭建AD域环境时出现错误,未能为域创建GPO 出现扩展错误解决办法
  9. docker搭建zabbix
  10. C++:STL之vector,deque对比
  11. Docker教程小白实操入门(17)--如何使用run -v创建一个数据卷
  12. TextCNN keras 实现
  13. PHP如何在两个大文件中找出相同的记录?
  14. Ubuntu20.04安装过程 【磁盘分区】
  15. 免驱 usb有线网卡_2020年末台式机amp;笔记本无线网卡最全选购指南amp;攻略,打造极致WIFI体验!...
  16. (固态)产品的质量和可靠性标准全系列(JEDEC+ASTM) - 最齐全、最完整及最新版
  17. python制作雕刻软件_blender for Mac(免费动画制作软件)
  18. Java如何将文件打包成Zip、Rar压缩包
  19. linux下贪吃蛇代码,贪吃蛇 linux 程序
  20. 衡水中学2021年的高考成绩查询,2021年全国百强高中排名,它拥有90%一本升学率,超衡水中学成第一...

热门文章

  1. linux重定向logcat,logcat重定向adb命令.doc
  2. 学校与计算机教室安全责任书,学校办公室安全责任书
  3. 永磁同步电机带电流补偿反馈的矢量控制
  4. 【云原生】-国产开源数据库openGauss容器部署
  5. PAT A1105 Spiral Matrix ——黄师塔前江水东,春光懒困倚微风
  6. 别再问了!考思科认证还是华为认证?看完你就知道了
  7. 论文阅读|struc2vec: Learning Node Representations from Structural Identity
  8. mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6
  9. 【系统】ntoskrnl.exe导致Win10蓝屏的解决方案
  10. 基于.NET 的一些开源框架和项目