Skip to content

1.7.0

Choose a tag to compare

@ilbee ilbee released this 27 Mar 13:50
· 18 commits to main since this release
2b57421

What's New

StreamedCSVResponse (#12)

New StreamedCSVResponse class for large CSV exports without memory buffering. Extends Symfony's StreamedResponse and writes rows directly to php://output.

// Stream large datasets without hitting memory limits
return new StreamedCSVResponse($data);

// Works with callables for lazy data loading
return new StreamedCSVResponse(function () {
    return $repository->findAllAsGenerator();
});

Shared architecture

  • Extracted CSVResponseInterface with shared constants
  • Extracted CSVResponseTrait with shared logic (value conversion, formula sanitization)
  • CSVResponse refactored to use interface + trait — zero BC break
  • Both classes now accept callable data sources (in addition to iterable)