XpressEngine
  • INTRODUCE
  • 시작하기
    • 권장 사양
    • 터미널 환경 설치
    • 웹 환경 설치
    • 업데이트
    • 문제 해결(디버깅)
  • 사이트 설정
    • 회원 설정 및 관리
    • 관리자 비밀번호 설정
    • 사이트맵 추가 및 제거
    • 컨텐츠 관리 및 신고 집계
    • Store 토큰 설정
    • 익스텐션 설치 / 업데이트
    • 기본 테마 설정
    • SEO 설정
    • 다국어 설정
    • 캡챠 설정
  • 번들 플러그인
    • 미디어 라이브러리
    • 외부페이지 플러그인
    • 플러그인 업로드
  • 개발자 문서
    • 개요
    • 디렉토리 구조
    • 컴포넌트
    • 플러그인
    • 서비스
    • 라이프 사이클
    • 라우팅
    • 컨트롤러
    • 요청
    • 응답
    • 프레젠터
    • 뷰
    • 템플릿
  • 플러그인 개발
    • 개요
    • 기본경로 및 구조
    • 기본 플러그인 생성
    • 플러그인 정보 추가 및 수정
    • 관리자 사이트 메뉴 추가
    • 위젯 개발/제작
    • 모듈 개발/제작
    • 에디터 제작
    • 에디터 툴 제작
    • UI 오프젝트 제작
    • 토글 메뉴 제작
    • 다이나믹 필드 제작
    • 다이나믹 필드 스킨 제작
  • 테마 개발/제작
    • 기본경로 및 구조
    • 기본 테마 생성
    • 서브 테마 활용
    • 설정 파일 작성
    • 테마 편집 기능
  • 스킨 개발/제작
    • 기본경로 및 구조
    • 기본 스킨 생성
    • 설정 파일 작성
  • 서비스
    • 카테고리
    • 캡챠
    • 설정
    • 문서
    • 키생성(Keygen)
    • 메뉴/모듈
    • 이벤트/인터셉션
    • 파일/스토리지
    • 회원/인증
    • 모바일
    • 권한
    • 데이터베이스
    • 메일
    • 프론트엔드
    • 이미지처리
    • 세션
    • 헬퍼
    • 쿠키
    • UI오브젝트/폼빌더
    • 카운터
    • 휴지통
    • 유효성검사
    • 오류처리
    • 테마
    • 위젯박스
  • 프론트엔드 (JS)
    • 프론트 엔드 JS 시작하기
    • Lang
    • Page
    • Page Modal
    • Request
    • Validator
Powered by GitBook
On this page
  • 세션(Session)
  • 설정
  • 세션 사용법
  • 임시 데이터
  • 데이터베이스 세션
  • 세션 드라이버

Was this helpful?

  1. 서비스

세션

Previous이미지처리Next헬퍼

Last updated 6 years ago

Was this helpful?

세션(Session)

설정

HTTP 기반의 어플리케이션은 상태를 저장할수 없기 때문에, HTTP 요청들에 관계없이 사용자의 정보를 저장하기위해서 세션이 사용됩니다. XE는 세션을 사용함에 있어 간결하고 통일된 API를 제공합니다. 세션 시스템으로는 , 그리고 데이터베이스를 별다른 설정 없이, 동일한 API로 사용할 수 있습니다.

세션의 설정은 config/session.php 파일에 있습니다. 이 파일에는 각각의 옵션에 대한 정리된 문서가 포함되어 있으므로 잘 확인하시기 바랍니다. 기본으로는 file 세션 드라이버가 사용됩니다.

참고: 세션을 암호화하여 저장하고자 한다면 encrypt 설정 옵션을 true로 지정하십시오.

예약어

XE는 내부적으로 flash라는 세션키를 사용하고 있습니다. 이 이름으로 세션을 추가하지 마시기 바랍니다.

세션 사용법

여러 가지 방법으로 세션을 엑세스할 수 있습니다. HTTP 요청-request의 session 메소드를 사용하는 방법, Session 파사드를 사용하는 방법, 그리고 session 헬퍼함수를 사용할 수 있습니다. 아무런 전달 인자 없이 session 헬퍼함수를 호출할 때에는 전체 세션 객체가 반환됩니다

아이템 세션에 저장하기

Session::put('key', 'value');

session(['key' => 'value']);

배열 세션값으로 저장하기

Session::push('user.teams', 'developers');

세션에서 특정 아이템 가져오기

$value = Session::get('key');

$value = session('key');

특정 아이템을 찾거나 기본값 반환받기

$value = Session::get('key', 'default');

$value = Session::get('key', function() { return 'default'; });

아이템 값 가져온 후 삭제하기

$value = Session::pull('key', 'default');

세션의 모든 데이터 가져오기

$data = Session::all();

세션에 아이템이 존재하는지 확인하기

if (Session::has('users'))
{
    //
}

세션에서 특정 아이템 삭제하기

Session::forget('key');

세션의 모든 아이템 삭제하기

Session::flush();

세션 ID 재생성하기

Session::regenerate();

임시 데이터

때로는 바로 다음번의 요청에서만 사용하기 위해서 세션에 아이템을 저장할 수 있습니다. 바로 Session::flash 메소드를 사용하는 것입니다:

Session::flash('key', 'value');

현재의 임시 데이터를 다른 요청에서 사용하기 위해서 다시 임시 저장하기

Session::reflash();

임시 데이터의 일부 값만 다시 임시 저장하기

Session::keep(['username', 'email']);

데이터베이스 세션

database 세션 드라이버를 사용하는 경우 세션 아이템들이 저장될 테이블을 생성해야 합니다. 다음의 Schema 예제를 통해서 테이블을 생성할 수 있습니다.

Schema::create('sessions', function($table)
{
    $table->string('id')->unique();
    $table->text('payload');
    $table->integer('last_activity');
});

session:table 아티즌 명령어를 사용하면 이 마이그레이션을 생성할 수 있습니다!

php artisan session:table

composer dump-autoload

php artisan migrate

세션 드라이버

세션 “드라이버”는 각각의 요청에 따라 세션이 어디에 저장될지를 결정합니다. XE는 별다른 설정 없이 다양한 드라이버를 사용할 수 있습니다:

  • file - 세션이 storage/framework/sessions 폴더에 저장됩니다.

  • cookie - 암호화된 쿠키를 사용하여 안전하게 세션을 저장할 것입니다.

  • database - 세션은 어플리케이션에 의해서 데이터베이스에 저장됩니다.

  • memcached / redis - 세션은 캐시 기반의 드라이버들에 의해 빠르게 저장됩니다.

  • array - 세션은 간단한 PHP 배열에 저장되지만 현재 요청에 한해 일시적으로 저장됩니다.

Redis 세션을 사용하기 위해서는 컴포저를 통해서 predis/predis (~1.0) 패키지를 설치해야만 합니다.

주의: 배열 드라이버의 경우에는 실제로 세션은 유지되지 않기 때문에 unit tests를 수행하는 데에만 사용하시기 바랍니다.

Memcached
Redis