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 数组迭代器参考链接: