Yii-安全组件
加密&解密 相关方法
数据加密和解密
encryptByPassword & decryptByPassword
通过key 对原数据进行加密,每次加密后的生成的数据是不一样的,但是都可以通过它来解密出原来的数据
redis实现文章根据点赞及时间排序
Yii-小点汇总
关于异常输出
在出现异常的时候,Yii的异常处理默认是要将之前的输出清空,也就是说通过 echo
或 var_dump
打印的内容将会被清掉不输出到页面,可以通过设置 ErrorHandler
类的 discardExistingOutput = false
属性来保证输出
开启debug,但是前端页面关闭debug导航条
我们只需要在渲染视图之前解绑debug模块注册的事件就可以
Request组件和Response组件
Request组件
前言
Request 中的方法并不难,主要是一些功能的封装罢了,原理上没有很复杂的东西。只是涉及到许多HTTP的有关知识,具体的代码分析和相关知识可以看
这里主要归纳一下使用方法,以常用的 yii\web\Request
为例
请求头请求体
getHeaders() 获取请求头
可以获取所有的请求头
getRawBody() 获取请求体
使用了 php://input
来获取请求体,这个 php://input
有这么几个特点:
php://input
是个只读流,用于获取请求体。php://input
是返回整个HTTP请求中,除去HTTP头部的全部原始内容, 而不管是什么 Content Type(或称为编码方式)
。 相比较之下, $_POST
只支持 application/x-www-form-urlencoded
和 multipart/form-data-encoded
两种 Content Type
。其中前一种就是简单的HTML表单以 method="post"
提交时的形式, 后一种主要是用于上传文档。因此,对于诸如 application/json
等 Content Type
,这往往是在 AJAX
场景下使用, 那么使用 $_POST
得到的是空的内容,这时就必须使用 php://input
。
相比较于 $HTTP_RAW_POST_DATA
, php://input
无需额外地在 php.ini
中 激活 always-populate-raw-post-data
,而且对于内存的压力也比较小。
当编码方式为 multipart/form-data-encoded
时, php://input
是无效的。这种情况一般为上传文档。 这种情况可以使用传统的 $_FILES
或者 yii\web\UploadedFile
Yii-model
前言
简单的接收数据的表单,使用继承自 Model
类的模型即可,如果是需要增删改之类的牵扯到表的则用 Active Record 活动记录
(也是继承自 Model
)
下面所述,字段和属性一个意思
像数组一样访问和遍历模型
可像访问数组单元项一样访问属性,这要感谢 yii\base\Model
支持 ArrayAccess
数组访问参考链接 和 ArrayIterator
数组迭代器参考链接: