세션 업그레이드

문서

변경된 사항

  • 메서드 이름과 라이브러리 로드 방법과 같은 소소한 부분만 변경되었습니다.

  • 데이터베이스 드라이버의 세션 테이블 정의가 변경되었습니다.

업그레이드 가이드

  1. 세션 라이브러리를 사용한 모든 곳에서 $this->load->library('session');$session = session();으로 교체하십시오.

  2. 그 이후 $this->session으로 시작하는 모든 줄을 새 메서드 이름이 뒤따르는 $session으로 교체해야 합니다.

    • 세션 데이터에 접근하려면 CI3 구문 $this->session->name 대신 $session->item 또는 $session->get('item') 구문을 사용하십시오.

    • 데이터를 설정하려면 $this->session->set_userdata($array); 대신 $session->set($array);를 사용하십시오.

    • 데이터를 제거하려면 $this->session->unset_userdata('some_name'); 대신 unset($_SESSION['some_name']); 또는 $session->remove('some_name');를 사용하십시오.

    • 다음 요청에서만 사용 가능한 플래시데이터로 세션 데이터를 표시하려면 $this->session->mark_as_flash('item'); 대신 $session->markAsFlashdata('item');을 사용하십시오.

  3. 데이터베이스 드라이버를 사용하는 경우 세션 테이블을 다시 생성해야 합니다. DatabaseHandler 드라이버를 참조하십시오.

코드 예제

CodeIgniter 버전 3.x

<?php

$this->load->library('session');

$_SESSION['item'];
$this->session->item;
$this->session->userdata('item');

CodeIgniter 버전 4.x

<?php

$session = session();

$_SESSION['item'];  // But we do not recommend to use superglobal directly.
$session->get('item');
$session->item;
session('item');