以 Yii 2.0 基础版为例来介绍 Yii 中是如何处理 cookie 的,高级版类似。
来自CODE的代码片
来自CODE的代码片
Yii 2.0 中对 cookie 进行了封装,类文件为
/basic/vendor/yiisoft/yii2/web 目录下的 Cookie.php 和
CookieCollection.php
,一般我们会在此基础上对 cookie
进行二次封装。
在自定义组件目录 /basic/components 下新建一个类文件 CookieHelper.php,来对 cookie 进行二次封装,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
来自CODE的代码片
snippet_file_0.php
然后,
在控制器层,新增一个控制器 CookieController.php,用于测试,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
来自CODE的代码片
snippet_file_0.php
在浏览器地址栏输入下面的地址,进行测试:
http://basic.com/cookie/index
http://basic.com/cookie/get
http://basic.com/cookie/del
说明:
\Yii::$app->response 和
\Yii::$app->request 下的 cookies 都是 CookieCollection 对象。区别在于:
\Yii::$app->response 下的 CookieCollection 对象 的 readOnly 属性的值为 false,该对象用于写操作。
\Yii::$app->request 下的 CookieCollection 对象 的 readOnly 属性的值为 true,该对象用于读操作。