Как расширить класс CHttpSession в yii1 - PullRequest
0 голосов
/ 30 марта 2019

Сначала я хочу сказать, что я действительно новичок в программировании yii1. Мне нужно поймать событие, когда сеанс уничтожен или закрыт в yii1, и перенаправить на индекс, когда событие инициируется.

У меня естьпопытался расширить класс CHttpSession и расширить метод sessionDestroy (), но я что-то упустил, потому что мое решение не работает.

Мой класс, который расширяет 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();

Я ожидаю увидеть в журнале сообщение с информацией об уничтожении, но ничего не происходит.

1 Ответ

1 голос
/ 31 марта 2019

Удлиняющая часть верна.Затем вам нужно настроить session компонент для использования вашего нового класса:

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

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

...