LogoLogo
NHN커머스 메인고도몰 운영 도움말
  • 고도몰 튜닝 가이드
    • Intro
    • 이해하기
      • 용어
      • 구조
        • 튜닝 진행 방법
        • 튜닝 가능 범위
        • 고도몰 아키텍쳐(Architecture)
        • 코딩 규칙
        • 네이밍 규칙
    • 준비하기
      • 심화 구조 이해
        • Routing 소개
        • Controller 소개
        • HTTP 소개
        • Database 소개
        • Security 소개
        • Exception 소개
        • Language 소개
      • 오픈 API 사용가이드
        • 인증키 발급 방법 안내
        • 공급사 이용 방법 안내
    • 튜닝하기
      • 소스 코드 튜닝
        • 기본 튜닝 방법
        • 컨트롤러 튜닝 방법
        • 템플릿 튜닝 방법
        • 튜닝 시 유의사항
      • 데이터베이스 튜닝
        • 튜닝 방법
        • 튜닝 시 유의사항
        • 고도몰 테이블 명세서
        • PhpMyAdmin 이용
      • 디버깅 방법
      • 패치 확인 및 대응 방법
    • 튜닝 따라하기
      • 관리자 GNB 색상 변경하기
      • 즐겨찾기 메뉴 바로가기 만들기
      • 관리자 메뉴 추가하기
      • 관리자 메뉴 수정하기
      • 관리자 페이지 추가하기
      • 관리자 페이지 수정하기
      • 사용자 페이지 추가하기
      • 사용자 페이지 수정하기
    • 잘못된 튜닝사례
      • 상속 미준수
      • 메소드 관련
      • 그 외
  • 기타 개발 가이드
    • 로그 사용 가이드
    • [PMA] 내보내기(export) 이용 안내
    • 외부 스크립트 사용 가이드
    • SDK 사용 가이드
    • [DB] 사용 가이드
  • 튜닝가이드 영상 보기
Powered by GitBook
LogoLogo

NHN COMMERCE

  • 공지사항
  • 회사소개

Partners

  • 서비스 제휴문의
  • 셀러어드민
  • 디자인 파트너

Developers

  • 스토어

©NHN COMMERCE Corp. All rights reserved.

On this page
  • 📌 Request
  • 값 설정하기
  • 값 가져오기
  • 모든 값 가져오기
  • 값 지우기
  • 모든 값 지우기
  • 값의 존재유무 체크하기
  • 주요 Method
  • 📌 Response
  • Create Instance
  • 📌 Session
  • Setting a value
  • Getting a value
  • Getting all values
  • Removing a value
  • Removing all values
  • Determining if an given key exists
  • 📌 Cookie
  • Setting a value
  • Getting a value
  • Getting all values
  • Removing a value
  • Determining if an given key exists

Was this helpful?

  1. 고도몰 튜닝 가이드
  2. 준비하기
  3. 심화 구조 이해

HTTP 소개

고도몰의 HTTP 관련 메서드를 소개하는 내용입니다.

📌 Request

Form을 작성하거나, File을 업로드 하는 등의 사용자 요청과 관련된 제어를 수행합니다. 일반적으로 $_GET, $_POST, $_FILES, $_SERVER, $_REQUEST의 내용에 접근할 수 있으며, 아래 명시된 편의 메서드를 제공합니다.

Request::get()->get('someKey'); // $_GET['someKey']
Request::post()->get('someKey'); // $_POST['someKey']
Request::server()->get('REQUEST_URI'); // $_SERVER['REQUEST_URI']
Request::files()->get('someKey'); // $_FILES['someKey']
Request::request()->get('someKey'); // $_REQUEST['someKey']

단, $_ENV 는 지원하지 않습니다. 다차원 키의 접근 방법으로 dot notation 을 지원합니다.

값 설정하기

Request::get()->set('name', 'value');
Request::post()->set('name', 'value');
Request::files()->set('file.name', 'value');
Request::request()->set('sampel.name', 'value');
Request::server()->set('REQUEST_URI', 'value');

값 가져오기

$name = Request::get()->get('name');
$name = Request::post()->get('name.first');
$name = Request::files()->get('name.first');
$name = Request::request()->get('name.first');
$name = Request::server()->get('REQUEST_URI');

요청값이 없는 경우 다음과 같이 2번째 인자로, 기본값을 설정할 수 있습니다.

$name = Request::get()->get('name', '기본값');
$name = Request::post()->get('name.first', '기본값');

모든 값 가져오기

해당 get()이 가지고 있는 모든 변수를 배열로 반환합니다.

$allGet = Request::get()->all();
$allGet = Request::get()->toArray();

값 지우기

Request::get()->del('name');
Request::get()->del('name.first');

모든 값 지우기

Request::get()->clear();

값의 존재유무 체크하기

if (Request::get()->has('name')) {
    // some code...
}

if (Request::get()->has('name.first')) {
    // some code...
}

주요 Method

getServerAddress()

서버의 IP주소를 반환하며, cli에서도 정상적으로 가져올 수 있도록 처리되었습니다.

getRemoteAddress()

클라이언트의 ip주소를 반환하며, Proxy 혹은 nginx와 같은 구조에서 정상적으로 반환할 수 있도록 처리되었습니다.

isCli()

cli접근 여부를 체크하여 boolean을 반환합니다.

if (Request::isCli()) {
    // background process
}

isAjax()

Request 가 ajax인지 체크 후 boolean 값을 반환합니다.

if (Request::isAjax()) {
    // ajax code
}

isMethod($method)

주어진 $method 인자와 현재 REQUEST_METHOD 비교 후 boolean 값을 반환하며, 파라미터가 get, post, head, options, put, delete, trace, connect이 아닌 경우 예외 처리됩니다.

if (Request::isMethod('get')) {
    // get인 경우만 실행
}

if (Request::isMethod('post')) {
    // get인 경우만 실행
}

isMobile()

도메인의 m이 있는지 여부를 통해 모바일 여부를 boolean 형태로 반환합니다.

if (Request::isMobile()) {
    // 도메인이 m.domain.com 인 경우
}

isMobileDevice()

접속한 기기가 모바일 or 태블릿인지 UserAgent를 통해 체크 후 boolean을 반환합니다.

if (Request::isMobileDevice()) {
    // 접속기기가 모바일/태블릿인 경우
}

isRefresh()

브라우저에서 새로고침을 했는지에 대해 체크 후 boolean을 반환합니다.

if (Request::isRefresh()) {
    // 페이지 새로고침을 한 경우
}

📌 Response

Json, Redirect, Streamed, BinaryFile 의 4가지 형태로 응답 객체를 생성할 수 있습니다. Chaining method를 제공합니다.

Create Instance

$response = Response::create($content, $statusCode, $headers);

📌 Session

파일 세션만 지원합니다.

다차원 키의 접근 방법으로 dot notation 을 지원합니다.

Setting a value

Session::set('name', 'value');
Session::set('name.first', 'value');

Getting a value

$name = Session::get('name');
$name = Session::get('name.first');

2번째 인자로, 기본값을 설정할 수 없습니다. 미설정시 null 로 설정됩니다.

Getting all values

$session = Session::all();

Removing a value

Session::del('name');
Session::del('name.first');

Removing all values

Session::clear();

Determining if an given key exists

if (Session::has('name')) {
    // some code...
}

if (Session::has('name.first')) {
    // some code...
}

📌 Cookie

쿠키는 다차원 키를 사용할 수 없습니다.

Setting a value

Cookie::set('name', 'value'); // 세션 쿠키 생성
Cookie::set('name', 'value', 3600, '/', true, true); // 1시간 만료 쿠키 생성

Getting a value

$name = Cookie::get('name');

Getting all values

$session = Cookie::all();

Removing a value

Cookie::del('name');

Determining if an given key exists

if (Cookie::has('name')) {
    // some code...
}
PreviousController 소개NextDatabase 소개

Last updated 1 year ago

Was this helpful?