CI4

[코드이그나이터] 세션 라이브러리

으누아빠 2020. 9. 8. 14:59
반응형

세션 라이브러리

출처:
http://ci4doc.cikorea.net/libraries/sessions.html

세션 초기화

$session = \Config\Services::session($config);

$session = session();

세션 데이터 검색

/*
세션 데이터 검색 방법

$_SESSION['item']

$session->get('item');

$session->item

session('item');
*/

$name = $_SESSION['name'];

// or:

$name = $session->name

// or:

$name = $session->get('name');

모든 세션 데이터 호출

$_SESSION

// or:

$session->get();

세션 데이터 추가

/*
세션 데이터 추가 방법

$session->set($array);
*/

$newdata = [
        'username'  => 'johndoe',
        'email'     => 'johndoe@some-site.com',
        'logged_in' => TRUE
];

$session->set($newdata);

// 한 번에 하나의 값으로 세션 데이터를 추가
$session->set('some_name', 'some_value');

// 세션 값이 존재하는지 확인하려면 isset()으로 확인

// returns FALSE if the 'some_name' item doesn't exist or is NULL,
// TRUE otherwise:
isset($_SESSION['some_name'])

세션 데이터 제거

unset($_SESSION['some_name']);

// or multiple values:

unset(
        $_SESSION['some_name'],
        $_SESSION['another_name']
);

// or:

$session->remove('some_name');

// or:

$array_items = ['username', 'email'];
$session->remove($array_items);

플래시 데이터

CodeIgniter는 세션 데이터를 다음 요청에서만 사용한 다음 자동으로 지워지는 “flashdata”를 지원

$_SESSION['item'] = 'value';
$session->markAsFlashdata('item');

// or:

$session->setFlashdata('item', 'value');

// 플래시 데이터 읽는 방법
$_SESSION['item']

// getFlashdata() 메소드를 사용하면 "flashdata"의 값만 호출 
$session->getFlashdata('item');

// 모든 플래시 데이터가 있는 배열호출
$session->getFlashdata();


//플래시 데이터 유지
$session->keepFlashdata('item');
$session->keepFlashdata(['item1', 'item2', 'item3']);

tempdata

CodeIgniter는 특정 만료 시간을 가지는 세션 데이터. 값이 만료되거나, 세션이 만료되거나, 삭제되면 값이 자동으로 제거

// 'item' will be erased after 300 seconds
$session->markAsTempdata('item', 300);

// or:

// Both 'item' and 'item2' will expire after 300 seconds
$session->markAsTempdata(['item', 'item2'], 300);

// 'item' will be erased after 300 seconds, while 'item2'
// will do so after only 240 seconds
$session->markAsTempdata([
        'item'  => 300,
        'item2' => 240
]);

// or:

$_SESSION['item'] = 'value';
$session->markAsTempdata('item', 300); // Expire in 5 minutes

// or:

$session->setTempdata('item', 'value', 300);

// or:

$tempdata = ['newuser' => TRUE, 'message' => 'Thanks for joining!'];
$session->setTempdata($tempdata, NULL, $expire);

//getTempdata() 메소드를 사용하여 "tempdata"의 값만 가져올수 있음
$session->getTempdata('item');

$session->getTempdata();

// tempdata 값을 제거
unset($_SESSION['item']);

세션 삭제

session_destroy();

// or

$session->destroy();


//세션을 완전히 종료
$session->stop();