Symfony2로 기능 테스트를 작성하고 있습니다.Symfony 테스트 클라이언트로 스트리밍 된 응답을 검색하는 방법 (예 : 파일 다운로드)
나는이 다음과 같이 이미지 파일을 스트리밍하는 getImage()
함수를 호출하는 컨트롤러 다음과 같이
public function getImage($filePath)
$response = new StreamedResponse();
$response->headers->set('Content-Type', 'image/png');
$response->setCallback(function() use ($filePath) {
$bytes = @readfile(filePath);
if ($bytes === false || $bytes <= 0)
throw new NotFoundHttpException();
});
return $response;
}
, 내가 Symfony test client와 컨텐츠를 요청하는 시도를 :
$client = static::createClient();
$client->request('GET', $url);
$content = $client->getResponse()->getContent();
문제는 $content
이 비어 있다는 것입니다. 데이터 스트림이 전달되기를 기다리지 않고 클라이언트가 HTTP 헤더를 수신하자마자 응답이 생성되기 때문에 문제가 발생합니다.
서버에 요청을 보내기 위해 $client->request()
(또는 일부 다른 기능)을 사용하면서 스트리밍 된 응답의 콘텐츠를 잡는 방법이 있습니까?
나 요청을하기 전에()이 내가위한 ob_start 배치했다 작동하도록하기 위해. –