2012-06-27 4 views
0

Recess Framework에 HTTP 헤더를 추가하려면 어떻게해야합니까?Recess Framework + Header 추가

나는 이것을 시도한다.

header ('HTTP/1.1 204 No Content');

하지만 작동하지 않습니다.

감사합니다.

답변

0

이 경우 특정 응답에 대해 HTTP 헤더를 추가하는 가장 좋은 방법은 새 응답 유형을 만드는 것입니다. 이것은 정상적인 방법 (return $ this-> ok()와 같은)으로 컨트롤러 메소드에서 리턴하고 프레임 워크에 헤더를 추가하게합니다. Recess 버전에는 No Content 응답이 있지만, AbstractController에는없는 것이므로 액세스 할 수 없습니다. 확인하려면 다음 단계를 따르십시오.

recess/디렉토리를보십시오. 우리는 여러 파일을 수정합니다.

먼저 recess/http/responses/NoContentResponse.class.php 파일을 생성하십시오 (이미 존재하지 않는 경우). 버전에 잘 존재할 수 있습니다. 이 코드를 사용

<?php 
Library::import('recess.http.Response'); 
Library::import('recess.http.ResponseCodes'); 

class NoContentResponse extends Response { 
    public function __construct(Request $request) { 
    parent::__construct($request, ResponseCodes::HTTP_NO_CONTENT, 
       ResponseCodes::getMessageForCode(ResponseCodes::HTTP_NO_CONTENT)); 
    } 
} 
?> 

확실히 HTTP_NO_CONTENT 응답 코드 (이미 거기에 있어야한다) 세스/HTTP/ResponseCodes.class.php 파일에 있는지 확인합니다.

이제 컨트롤러에서 응답에 액세스 할 수 있는지 확인해야합니다. 오목/프레임 워크/AbstractController.class.php 파일에 다음 코드를 추가합니다 : 이것은 당신이> nocontent이다() 당신의 컨트롤러에서 다른 모든 응답과 같은 $ this-을 반환하게됩니다

protected function noContent() { 
    Library::import('recess.http.responses.NoContentResponse'); 
    $response = new NoContentResponse($this->request); 
    return $response; 
} 

. 행운을 빕니다!