수색…
소개
Symfony의 Request 클래스는 HTTP 요청의 객체 지향 표현입니다. 여기에는 URL, 쿼리 문자열, 업로드 된 파일, 쿠키 및 브라우저에서 오는 다른 헤더와 같은 정보가 들어 있습니다.
통사론
- $ request-> getPathInfo (); // 요청 된 경로 (URL의 로컬 부분)를 반환합니다 (그러나 쿼리 문자열은 제외). 즉, https://example.com/foo/bar?key=value 를 방문하면 / foo / bar가 포함됩니다.
- $ request-> query-> get ( 'id'); // 쿼리 문자열 매개 변수를 반환합니다 ($ _GET).
- $ request-> query-> get ( 'id', 1); // 기본값이있는 쿼리 문자열 매개 변수를 반환합니다.
- $ request-> request-> get ( 'name'); // 요청 본문 변수를 반환합니다 ($ _POST).
- $ request-> files-> get ( 'attachment'); // "attachment"로 식별되는 UploadedFile의 인스턴스를 반환합니다.
- $ request-> cookies-> get ( 'PHPSESSID'); // 쿠키 값을 반환합니다 ($ _COOKIE).
- $ request-> headers-> get ( 'content_type'); // HTTP 요청 헤더를 반환합니다.
- $ request-> getMethod (); // HTTP 요청 메소드를 반환합니다 (GET, POST, PUT, DELETE 등).
- $ request-> getLanguages (); // 클라이언트가 수락하는 언어 배열을 반환합니다.
쿼리 문자열 매개 변수 얻기
페이지 번호가 쿼리 문자열 매개 변수로 전달되는 제품의 페이지 매김 목록을 작성하려고한다고 가정 해 보겠습니다. 예를 들어 세 번째 페이지를 가져 오려면 다음 페이지로 이동하십시오.
http://example.com/products?page=3
원시 HTTP 요청은 다음과 같습니다.
GET /products?page=3 HTTP/1.1
Host: example.com
Accept: text/html
User-Agent: Mozilla/5.0 (Macintosh)
요청 개체에서 페이지 번호를 가져 오려면 query
속성에 액세스 할 수 있습니다.
$page = $request->query->get('page'); // 3
page
매개 변수의 경우 쿼리 문자열 매개 변수가 설정되지 않은 경우 기본값을 전달해야 할 수 있습니다.
$page = $request->query->get('page', 1);
즉, 누군가가 http://example.com/products를 방문하면 (쿼리 문자열이 없음을 참고), $page
변수에 기본값 1
이 포함됩니다.
전역 변수에서 요청 객체 만들기
PHP는 $_POST
, $_GET
, $_FILES
, $_SESSION
등과 같은 HTTP 요청에 대한 정보를 포함하는 많은 수의 전역 변수 를 노출합니다. Request
클래스는 요청을 인스턴스화하기 위해 정적 createFromGlobals()
메소드를 포함합니다 이러한 변수를 기반으로 한 객체 :
use Symfony\Component\HttpFoundation\Request;
$request = Request::createFromGlobals();
Symfony 프레임 워크를 사용할 때 요청 객체를 직접 인스턴스화해서는 안됩니다. 대신 프레임 워크가 app.php
/ app_dev.php
에서 부트 스트랩 될 때 인스턴스화 된 객체를 사용해야합니다. 예를 들어 컨트롤러에 요청 객체 힌팅 을 입력합니다 .
POST 변수 액세스
method="post"
를 사용하여 제출 된 양식의 내용을 가져 오려면 post
속성을 사용하십시오.
$name = $request->request->get('name');
쿠키의 내용에 접근하기
$id = $request->cookies->get('PHPSESSID');
이렇게하면 브라우저에서 보낸 'PHPSESSID'쿠키의 값이 반환됩니다.