インポートプロセスに時間がかかり、Symfony 2.1で利用可能な新しいStreamedResponseを使用して、タスクに関するフィードバックをユーザーに報告しようとしていますが、応答がストリーミングされていません(処理の最後にすべてのコンテンツを一度に取得します) 。これは私のコントローラーのコードです:
$em = $this->getDoctrine()->getEntityManager();
$response = new StreamedResponse();
$response->setCallback(function () use ($em) {
$file = fopen(sys_get_temp_dir().'/categories.txt', 'r');
$lineNum = 0;
while ($line = fgets ($file)) {
$category = new Category();
$fields = explode("\t",$line);
$category->setFullId($fields[0]);
$category->setName($fields[2]);
$category->setFullName($fields[4]);
$em->persist($category);
if ($lineNum%100==0) {
echo 'Processing Line: '.$lineNum.'<br>';
flush();
$em->flush();
}
$lineNum++;
}
fclose($file);
});
return $response;
何が間違っているのか考えてみませんか?