YII2官方文档理论知识

2 篇文章 0 订阅

一、防止XSS攻击

模板语言自带防止XSS攻击

<? 变量 ?>                    // 这种防止不了XSS攻击
<?=Html::encode(变量) ?>     //  防止XSS攻击,别忘记=号

二、服务定位器

所谓的服务定位器,就是把一些类进行实例化,然后存贮在一个容器里,可以直接调用,实现单实例引用,不需要再自己手动new一个实例。

Yii::$app         // 这里面封存了request,db,response等等特定功能的组件(单实例)
Yii::$app->request->post()    // 获取里面的request组件,并调用其post放啊

三、入口脚本

分为两个,第一个是yii.php,应用在命令中,命令行的入口脚本
第二个是web/index.php应用于接收,处理请求

// web/index.php这个入口脚本经常用于定义全局常量
define('test', 'test');

四、应用主体

应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个 Yii 应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问。应用主体是服务定位器。

五、应用组件

应用主体里有多个应用组件,例如:request,response,db等。这些应用组件本质上就是一个个实例,可以通过应用主体Yii::$app来访问。
1.request 组件 用来收集用户请求并解析 路由;
2.db 代表一个可以执行数据库操作的数据库连接;

六、动作

简单来说就是控制器(类)里以action为开头命名方法

class xxx extends Controller{
	public function actionAbc(){
	}
}

七、控制器的生命周期

  1. 初始化
    在控制器创建和配置后,yii\base\Controller::init() 方法会被调用
  2. 操作方法
    根据请求来查看对应的action方法,若请求没有选择方法,如果为/,则直接调用默认方法。默认方法调用的是Index。
    3.过滤器
    behaviour,beforeAction,如果返回false就会终止请求,返回空
  3. 控制器方法执行
  4. 过滤器afterAction
  5. 响应
    进行数据处理后就会进行响应,页面响应/json响应
    过滤器类似中间件

八、模块的定义

一个模块是由MVC和其他小组件构成的。

九、请求处理过程(请求的生命周期)

  1. 入口组件
    提交请求给web\index.php文件
  2. 初始化
    入口组件会创建一个应用实例来处理请求
  3. 请求解析
    对请求进行解析,匹配到相对应的控制器和方法
  4. 实例化
    请求发送到控制器,控制器会先进行实例化
  5. 检查方法
    会先进行方法的检查,看是否存在该方法。如果URL不带方法名,就会访问默认的方法名
  6. 前置过滤器
    全部的前置过滤器验证,若有一个不通过,则中断请求
  7. 动作执行
    请求进入动作,并经过一系列操作,连接数据库获取数据后返回数据
  8. 后置过滤器
    经过后置过滤器,通过才继续返回数据
  9. 视图
    若返回的是视图,则会先经过框架编译后,才会返回给浏览器进行渲染。

十、路由优化

1.当解析或创建URL时,URL manager 按照它们声明的顺序检查 URL 规则。 因此,您可以考虑调整 URL 规则的顺序,以便在较少使用的规则之前放置更具体和/或更常用的规则。

2.如果多个 URL 规则使用相同的前缀,你可以考虑使用 yii\web\GroupUrlRule, 这样作为一个组合,URL管理器会更高效。 特别是当应用程序由模块组合而成时,每个模块都有各自的 URL 规则且都有各自的模块 ID 作为前缀。

十一、组件的定义

组件是 Yii 应用的主要基石。是 yii\base\Component 类或其子类的实例。 三个用以区分它和其它类的主要功能有:

1.属性(Property)
类的成员变量也被称为属性。主要是需要在类里定义getter和setter来获取和修改数据,也就是类里面定义get+属性名和set+属性名的方法
$label = $object->label; 等价于触发了getter方法 $label = $object->getLabel();
$object->label = ‘abc’ 等价于触发了setter方法 $object->setLabel(‘abc’)

2.事件(Event)
当某种方法触发(代码执行)时,会附带执行自定义的某些代码,就是事件。把事件名传入trigger函数中,便会触发事件里的代码执行。
先进行绑定(方法名, 函数)->通过传入方法名到trigger里调用

3.行为(Behavior)
行为,也称为 mixins, 可以无须改变类继承关系即可增强一个已有的 组件 类功能。(新增属性与方法)

十二、ACF权限认证(存取过滤验证器)

public function behaviors(){
	return ['access'=>[
		'class' => AccessControl::className(),
		
		'rules' => [
			// 代表游客
			['actions'=> ['login', 'error'],  // 定义允许的动作
			'allow' => true,
			'roles' => ['?'],
			],
			// 代表已登陆
			['actions'=>['logout', 'index'],
			'allow'=>true,
			'roles' => ['@'],
			]
		]
	]]
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yii 2.0 权威指南 本教程的发布遵循 Yii 文档使用许可. 版权所有 2014 (c) Yii Software LLC. 介绍 已定稿 关于 Yii 已定稿 从 Yii 1.1 升级 入门 已定稿 安装 Yii 已定稿 运行应用 已定稿 第一次问候 已定稿 使用 Forms 已定稿 玩转 Databases 已定稿 用 Gii 生成代码 已定稿 更上一层楼 应用结构 已定稿 结构概述 已定稿 入口脚本 已定稿 应用 已定稿 应用组件 已定稿 控制器(Controller) 已定稿 视图(View) 已定稿 模型(Model) 已定稿 过滤器 已定稿 小部件(Widget) 已定稿 模块(Module) 已定稿 前端资源(Asset) 已定稿 扩展(extensions) 请求处理 已定稿 运行概述 已定稿 引导(Bootstrapping) 已定稿 路由(Route)引导与创建 URL 已定稿 请求(Request) 已定稿 响应(Response) 已定稿 Sessions(会话)和 Cookies 已定稿 错误处理 已定稿 日志 关键概念 已定稿 组件(Component) 已定稿 属性(Property) 已定稿 事件(Event) 已定稿 行为(Behavior) 已定稿 配置(Configurations) 已定稿 类自动加载(Autoloading) 已定稿 别名(Alias) 已定稿 服务定位器(Service Locator) 已定稿 依赖注入容器(DI Container) 配合数据库工作 编撰中 数据访问对象(DAO) - 数据库连接、基本查询、事务和模式操作 编撰中 查询生成器(Query Builder) - 使用简单抽象层查询数据库 编撰中 活动记录(Active Record) - 活动记录对象关系映射(ORM),检索和操作记录、定义关联关系 编撰中 数据库迁移(Migration) - 在团体开发中对你的数据库使用版本控制 待定中 Sphinx 待定中 Redis 待定中 MongoDB 待定中 ElasticSearch 接收用户数据 编撰中 创建表单 已定稿 输入验证 编撰中 文件上传 待定中 多模型同时输入 显示数据 编撰中 格式化输出数据 待定中 分页(Pagination) 待定中 排序(Sorting) 编撰中 数据提供器 编撰中 数据小部件 编撰中 主题 安全 编撰中 认证(Authentication) 编撰中 授权(Authorization) 编撰中 处理密码 待定中 客户端认证 待定中 安全领域的最佳实践 缓存 已定稿 概述 已定稿 数据缓存 已定稿 片段缓存 已定稿 分页缓存 已定稿 HTTP 缓存 RESTful Web 服务 已定稿 快速入门 已定稿 资源 已定稿 路由 已定稿 格式化响应 已定稿 授权验证 已定稿 速率限制 已定稿 版本化 已定稿 错误处理 已定稿 测试

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值