- Classe :
AppoloDev\SFToolboxBundle\Response\CsvFileResponse - Fichier source :
src/Response/CsvFileResponse.php - Étend :
Symfony\Component\HttpFoundation\Response
Réponse HTTP prête à l'emploi pour proposer un contenu CSV en téléchargement (Content-Type: text/csv, Content-Disposition: attachment), à retourner directement depuis un contrôleur.
__construct(?string $csvContent = '', string $fileName = 'export.csv', int $status = 200, array $headers = [])
$csvContent: contenu CSV déjà généré (typiquement viaCsvWriter::getContent()).$fileName: nom de fichier proposé au téléchargement (défautexport.csv).$status: code HTTP (défaut200).$headers: en-têtes HTTP additionnels.
Configure automatiquement Content-Type: text/csv et Content-Disposition: attachment; filename="...".
use AppoloDev\SFToolboxBundle\Csv\CsvWriter;
use AppoloDev\SFToolboxBundle\Response\CsvFileResponse;
#[Route('/admin/books/export', name: 'admin_book_export')]
public function export(BookRepository $repository): CsvFileResponse
{
$csv = (new CsvWriter())
->setHeaders(['Titre', 'Auteur'])
->setRows(array_map(
fn (Book $b) => [$b->getTitle(), $b->getAuthor()],
$repository->getQB()->getResults()
));
return new CsvFileResponse($csv->getContent(), 'export-livres.csv');
}- Csv/CsvWriter — génère le contenu CSV attendu par cette réponse.
- Response/ZipResponse — équivalent pour un export de plusieurs fichiers zippés.
- Maker/Command/MakeScaffoldCommand —
Export<Entity>Controllergénéré, point d'utilisation naturel de cette réponse.