正文实例陈述了Yii框架 session,中组件独有在被调用的时候才会被实例化

本文实例讲述了Yii框架 session
数据库存储操作方法。分享给大家供大家参考,具体如下:

本文实例讲述了Yii框架操作cookie与session的方法。分享给大家供大家参考,具体如下:

本文实例讲述了Yii框架模拟组件调用注入。分享给大家供大家参考,具体如下:

本文实例讲述了Yii框架学习笔记之session与cookie操作。分享给大家供大家参考,具体如下:

在组件中声明session 组件开启数据库库存储

cookie操作

yii
中组件只有在被调用的时候才会被实例化,且在当前请求中之后调用该组件只会使用上一次实例化的实例,不会重新生成该实例。

session操作

[ 'components' => [ 'db' => [ 'class' => 'yiidbConnection', 'dsn' => 'mysql:host=localhost;dbname=yii', 'username' => 'root', 'password' => 'xxxxxx', 'charset' => 'utf8' ], 'session' => [ 'class' => 'yiiwebDbSession', //session 操作对象 'db' => 'db', //指定数据库操作组件是上面的组件db 'sessionTable' => 'yii_session' //session 数据库表名称 ] ]]
//获取response->cookies组件$cookies = Yii::$app->response->cookies;//设置cookie数组$array_cookies=array('name'=>'user','value'=>'doubly');//添加cookie数据$cookies->add(new Cookie;

$cookies->remove;

$cookies = Yii::$app->request->cookies;echo $cookies->getValue;
'components' => array( '组件调用名' => '组件调用命名空间', '组件调用名' => array( 'class' => '组件调用命名空间' ); '组件调用名' => function(){ return new '组件调用命名空间'; })
session; if{ echo "session isactive"; }else{ $session->open(); } $session->set; $session->get; $session->remove; //把session当做数组 $session['user'] = "张三"; unset; } }?>

yii_session 表结构

细心的人可能发现读取cookie和前面的组件略有不同,前面都是response->cookies,而读取却用了request->cookies,这是为什么呢?可以参考前面一篇文章Yii框架中用response保存cookie,用request读取cookie的原理

一个类似的小组件,可以实现上述功能。方便我们存储服务功能组件。

cookie操作

CREATE TABLE yii_session NOT NULL PRIMARY KEY, expire INTEGER, data BLOB)

namespace appcontrollershome;use Yii;use yiiwebController;class IndexController{ public function actionIndex() { $session = Yii::$app->session; if(isset && isset { var_dump; }else{ $session['name'] = '谭勇'; $session['tel'] = 22; echo 'set session'; } }}

session操作

 array( * 'customService' => array(* 'class' => 'appcomponentsCustomCustom',* 'name' => '我是勇哥'* ), * ) */class Services{ private $dataObj = array(); private $classes = array(); public function __set { $this->classes[$name] = $value; } public function __get { if(!isset($this->dataObj[$name]) || $this->dataObj[$name] == null) { $classInfo = $this->classes[$name]; $this->dataObj[$name] = is_array ? (new $classInfo['class']) : ; if foreach if $this->dataObj[$name]->$a = $b; } return $this->dataObj[$name]; }}

'components'=>array( 'services' => array( 'class' => 'appcomponentsServicesServices', //自定义服务 custom1 'custom1Service' => array( 'class' => 'appservicesCustom1Custom1', //需要注入的属性值 'name' => '我是勇哥', 'age' => 22 ), //自定义服务 custom2 'custom2Service' => array( 'class' => 'appservicesCustom2Custom2', //需要注入的属性值 'name' => '我是勇哥', 'age' => 22 ), ))

services->custom1Service->name; }}
response->cookies; $cookie_data = array('name'=>"user","value"=>"zhangsan"); $cookies->add(new Cookie;//以'cookieValidationKey' 为基础的加密字符串 $cookies->remove;//移除掉ID的cookie //取出cookie的值 $cookies = YII::$app->request->cookies; $cookies->getValue; //如果cookie不存在 $cookies->getValue;//返回20 }?>

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图