ファイル(おそらく非常に大きなファイル)を解析し、各文字列を別のエンティティに保存する必要があるプロジェクトに取り組んでいます。バンドルは、多くのファイル タイプ (CSV、XML、JSON など) を処理します。これらのタイプごとに、文字列の配列を返すパーサーを作成します。
$em2 = $this->getDoctrine()
->getEntityManager();
foreach ($Parser as $key => $value) {
$str_or[] = new StringOrigin();
$str_or[$key]->setSTORString($value);
/..
$em2->persist($str_or[$key]);
}
$em2->flush();
$Paser は、ファイルから解析された文字列の配列です。StringOrigin はエンティティです。エンティティ マネージャが処理できるデータ量は? 私はこれを正しい方法でやっていますか?そうでない場合、バッチ処理で これをより適切に処理できますか? また、DQL を使用せずに INSERT を 1 つだけ実行する方法はありますか?