-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSession.php
More file actions
51 lines (44 loc) · 1.63 KB
/
Session.php
File metadata and controls
51 lines (44 loc) · 1.63 KB
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
<?php
/**
* Created by WebSee.
* User: SergeyTigrov
* Date: 30.05.12
* Time: 11:45
*/
class Session extends CDbHttpSession {
private $_isCookieHasSession;
/**
* Определяет использовались ли ранее Session
* @return bool результат true, если Session ранее испоьзовались, иначе false
*/
public function getIsUsed() {
return $this->getIsStarted() || $this->getIsCookieHasSession();
}
/**
* Проверяем наличие идентификатора Session в Cookie
* @return bool результат true, если идентификатор Session уже хранится в Cookie, иначе false
*/
public function getIsCookieHasSession() {
if ($this->_isCookieHasSession === null) {
$cookies = Yii::app()->getRequest()->getCookies();
$this->_isCookieHasSession = $cookies[$this->getSessionName()] !== null;
}
return $this->_isCookieHasSession;
}
/**
* Открываем Session с проверкой не открыта ли она уже
*/
public function open() {
if (!$this->getIsStarted()) {
parent::open();
}
}
/**
* Дополнительно к родительскому методу destroy() добавляем удаление идентификатора Session из Cookie
*/
public function destroy() {
parent::destroy();
$cookieParams = $this->getCookieParams();
setcookie($this->getSessionName(), '', 0, $cookieParams['path'], $cookieParams['domain']);
}
}