每次请求 所有对象都重新创建的吗? [ 新手入门 ]
'bootstrap' => [
'core_goods',
]
'modules'=>[
'core_goods' =>[
'class' => 'goods\Goods'
]
]
设置了引导启动 每次请求模块对象也会重新创建init函数被调用。
public function init(){
parent::init();
// ... 应用配置后进行初始化
$this->session = Yii::$app->session;
// 开启session
$this->session->open();
$this->session['num'] = 1;
}
public function add(){
$this->session['num'] = $this->session['num'] + 1;
return $this->session['num'];
}
每次请求执行 add,结果都是2。。。 这不正常吧,我刚从 Java 转 PHP。不太懂,请多多指教。
共 1 条回复
-
return19931112 回复于 2020-09-04 10:01 举报
的确是每次请求所有对象都会重新创建,请求结束对象销毁,java和php机制不一样
共 2 条回复如果是这样的话
public function __set($name, $value){ if ( !empty($name) && $name == 'services'){ if (!isset ($this->_service) ){ $this->_service = Yii::createObject([ 'class' => 'core\common\basis\Service', 'childService' =>$value]); } }else{ } return null; }
if (!isset ($this->_service))
就没什么意义了。
模块每次都重建 属于复位?return19931112 回复于 2020-09-07 09:52 回复是的,新来一个请求新创建一次,同一个请求内不会重复创建
villers
注册时间:2020-09-04
最后登录:2020-10-16
在线时长:2小时2分
最后登录:2020-10-16
在线时长:2小时2分
- 粉丝0
- 金钱55
- 威望0
- 积分75