Yii2总结
1. Web访问流程(即在浏览器中输入一个网址至浏览器展现页面结果的过程)
a. 将输入的网址提取出域名,在本地hosts文件中查找对应的IP地址(windows为C:/windows/system32/drivers/etc/hosts; linux为/etc/hosts)
b. 如果没有在本地hosts文件中找到对应的IP地址,则请求DNS服务器,DNS服务器对域名进行解析,返回对应IP(如果页面没有响应也有可能是DNS服务器故障)
c. 本地浏览器发起HTTP请求,向IP主机服务器发起请求,HTTP请求包含请求头,消息报头,请求正文
d. 服务器接收HTTP请求,获取请求的应用和请求的资源
e. 服务器创建创建一个HTTP响应,返回客户机请求的资源,HTTP响应头包括响应头,消息爆头,响应正文
f. 客户机接收HTTP响应并解析资源,展现结果
2. Web访问相应的协议(HTTP与TCP,UDP,Socket之间的关系)
a. HTTP协议是为Web而生的,是应用层的协议;建立连接是依靠TCP协议,HTTP协议本身只发送和接收数据
HTTP1.0协议每次请求都需要建立一次连接,请求完成则释放连接
HTTP1.1协议则每次建立连接可以发送多次请求,每个请求可以重叠,无需等待第一个请求结束这可以发送第二个请求,两个请求同时进行
b. HTTP协议的底层是基于TCP协议,TCP协议是传输层的协议;
使用TCP协议建立的连接是可靠的,使用UDP协议建立的连接是不可靠的
TCP协议是通过三次握手实现的(客户端发送数据包syn=j并进入SYN_SEND状态; 服务器接收到syn包,同时发送ack包syn=j+1及syn包syn=k至客户端;客户端接收后再次发送ack包ack=k+1从而建立连接)
c. UDP和TCP都是传输层的协议,TCP协议和UDP协议只建立连接
d. Socket是套接字,并不是一种协议,使用Socket可以建立TCP或者UDP协议的连接
3. Yii2框架的启动流程
a. 访问入口文件
b. 访问配置文件
c. 加载核心类
d. 加载框架
e. 路由解析
f. 从数据库读取数据
g. 调用模板渲染页面
4. Yii2的组件
(1)入口脚本与配置文件(包括数据库配置等其他配置),类自动加载(自动加载核心类和框架),代码生成(gii代码生成器,可使用界面生成,也可使用命令生成)
(2)数据库迁移(完成数据库的结构的迁移及数据的导入和导出), 行为(包括执行前行为执行后行为,访问控制行为),模块(将系统分成小模块),控制器,模型(数据表模型,表单验证模型,其他业务模型),数据库操作(完成数据库的连接,增删改查,连表操作,关联操作,事务),助手类(字符串助手,数组助手,URL助手)
(3)视图(列表页视图ListView, 表格视图GridView,详情页视图DetailView,搜索页视图SearchModel,表单页视图FormModel),小部件(每一个页面都包含多个小部件StateWidget),前端资源(CSS和JS库)
(4)后台UI(使用UI框架构建后台系统页面,入Admintle)
(5)RestAPI(构建微服务架构)
(6)控制台程序(执行脚本修改数据,包括带参数,表格输出,格式化输出,选择运行,确认运行)
(7)安全(加密和解密)
(8)角色权限控制和数据权限控制(RBAC角色权限控制, 对每一条数据进行访问控制)
(9)打印(使用tcpdf,mpdf进行打印单据)
(10)导出Excel(使用框架自带的导出控件,使用php-excel表写导出助手类进行导出)
(11)文件上传(使用php编写文件上产程序, 使用框架自动的文件上传, 上产图片到七牛)
(12)使用gii生成模型:
php yii gii/model --tableName=* --ns= --baseClass= --enableI18N=
Yii2总结的更多相关文章
- Yii2的深入学习--行为Behavior
我们先来看下行为在 Yii2 中的使用,如下内容摘自 Yii2中文文档 行为是 [[yii\base\Behavior]] 或其子类的实例.行为,也称为 mixins,可以无须改变类继承关系即可增强一 ...
- 网站实现微信登录之回调函数中登录逻辑的处理--基于yii2开发的描述
上一篇文章网站实现微信登录之嵌入二维码中描述了如何在自己的登录页面内嵌入登录二维码,今天的这篇文章主要是描述下在扫码成功之后微信重定向回网站后登录逻辑的处理,其实也就是验证身份信息,授权用户登录的逻辑 ...
- 网站实现微信登录之嵌入二维码——基于yii2开发的描述
之前写了一篇yii2获取登录前的页面url地址的文章,然后发现自己对于网站实现微信扫码登录功能的实现不是很熟悉,所以,我会写2-3篇的文章来描述下一个站点如何实现微信扫码登录的功能,来复习下微信扫码登 ...
- yii2获取登录前的页面url地址--电脑和微信浏览器上的实现以及yii2相关源码的学习
对于一个有登录限制(权限限制)的网站,用户输入身份验证信息以后,验证成功后跳转到登录前的页面是一项很人性化的功能.那么获取登录前的页面地址就很关键,今天在做一个yii2项目的登录调试时发现了一些很有意 ...
- 记一次nginx部署yii2项目时502 bad gateway错误的排查
周六闲来无事,就试着安装和部署下yii2,安装过程没什么问题,但部署到nginx上时遇到了502 bad gatewary问题,折腾了半天才搞定.这个问题是我以前在部署yii2时没有遇到过的,因此记在 ...
- yii2的权限管理系统RBAC简单介绍
这里有几个概念 权限: 指用户是否可以执行哪些操作,如:编辑.发布.查看回帖 角色 比如:VIP用户组, 高级会员组,中级会员组,初级会员组 VIP用户组:发帖.回帖.删帖.浏览权限 高级会员组:发帖 ...
- yii2 RESTful api的详细使用
作者:白狼 出处:http://www.manks.top/yii2-restful-api.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...
- yii2 ActiveRecord多表关联以及多表关联搜索的实现
作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明 ...
- yii2权限控制rbac之rule详细讲解
作者:白狼 出处:http://www.manks.top/yii2_rbac_rule.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留 ...
- yii2组件之多图上传插件FileInput的详细使用
作者:白狼 出处:http://www.manks.top/yii2_multiply_images.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
随机推荐
- Linux之RTOS学习
Linux之RTOS学习 RTOS: Real time operating system 系统选型 可选方案 RTLinux - FSMLabs, WindRiver Systems - http: ...
- ORA-4031 错误故障排除与诊断[视频] (Doc ID 2016002.1)
Copyright (c) 2019, Oracle. All rights reserved. Oracle Confidential. ORA-4031 错误故障排除与诊断[视频] (Do ...
- javascript之传输加密
为什么要使用javascript加密呢?服务端加密远远不够,客户端或者浏览器端也需要加密,以此保证传输信息过程的安全. 今天就我工作中说说这么几种加密算法及其对应的应用场景,如下所示: base64 ...
- Servlet简单概念和开发小总结
一.Servlet概念 安装了tomcat了解到其实tomcat是一个容器,可以处理用户发送的请求(Request),之后会为请求做出一个响应(Response),此时用户只能请求一些现成的资源,容器 ...
- QQ的ldw值计算方法
- 【C#复习总结】细说泛型委托
1 前言 本系列会将[委托] [匿名方法][Lambda表达式] [泛型委托] [表达式树] [事件]等基础知识总结一下.(本人小白一枚,有错误的地方希望大佬指正) 系类1:细说委托 系类2:细说匿名 ...
- MiniProfiler安装使用心得
MiniProfiler简介: MVC MiniProfiler是Stack Overflow团队设计的一款对ASP.NET MVC的性能分析的小程序.可以对一个页面本身,及该页面通过直接引用.Aja ...
- OO生存指.....抱歉无法生存
还记得前三次的设计策略:星期二之前实现功能,星期三找一下可能出现的小bug. 这三次以及变成了:星期二之前能跑出来就行. 总体来说设计策略是:先让几个线程能够顺利运行,再开始实现功能. 在接触到多线程 ...
- Python-os模块-60
os 模块: 和操作系统打交道的模块 os模块是与操作系统交互的一个接口 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirna ...
- python3 pip 安装Scrapy在win10 安装报错error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools
问题描述 当前环境win10,python_3.6.1,64位. 在windows下,在dos中运行pip install Scrapy报错: building 'twisted.test.raise ...