如何在 yii1 中扩展 CHttpSession class

How to extend CHttpSession class in yii1

首先我想说我真的是编程新手yii1.I 必须在 yii1 中销毁或关闭会话时捕获事件,并在事件触发时重定向到索引。

我尝试扩展 CHttpSession class 并扩展方法 sessionDestroy(),但我错过了一些东西,因为我的解决方案不起作用。

我的 class 扩展了位于组件文件夹中的 CHttpSession:

class SessionDestroy extends CHttpSession {

  public function destroySession($id) {
    Yii::log('destroy', 'info');
    $result = parent::destroySession($id);

    return $result;
  }

}

然后在我的控制器中我有:

      $session = new CHttpSession;
      $session->open();
      ...
      $session->destroy();

我希望在日志中看到销毁信息消息,但什么也没发生。

扩展部分是对的。然后你需要配置 session 组件来使用你的新 class:

'components' => [
    // ...
    'session' => [
        'class' => 'SessionDestroy',
    ],
]

https://www.yiiframework.com/doc/guide/1.1/en/basics.application#application-components