PHPackages                             kalibora/csv-streamed-response - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. kalibora/csv-streamed-response

ActiveLibrary[Database &amp; ORM](/categories/database)

kalibora/csv-streamed-response
==============================

CSV streamed response that saves memory usage with symfony and doctrine

v0.5.0(5y ago)12.2kMITPHPPHP &gt;=7.1.0CI failing

Since Nov 20Pushed 5y ago1 watchersCompare

[ Source](https://github.com/kalibora/csv-streamed-response)[ Packagist](https://packagist.org/packages/kalibora/csv-streamed-response)[ RSS](/packages/kalibora-csv-streamed-response/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (8)Versions (8)Used By (0)

CsvStreamedResponse
===================

[](#csvstreamedresponse)

CSV streamed response that saves memory usage with symfony and doctrine.

Usage
-----

[](#usage)

### example 1: Specify columns with DQL

[](#example-1-specify-columns-with-dql)

```
class DefaultController extends Controller
{
    public function csvAction(UserRepository $repository)
    {
        return CsvStreamedResponse::builder()
            ->setRowsFromDoctrineQueryBuilder(
                $repository->createQueryBuilder('u')->select('u.id, u.name')
            )
            ->build()
        ;
    }
}
```

### example 2: Specify columns with entity methods

[](#example-2-specify-columns-with-entity-methods)

```
class DefaultController extends Controller
{
    public function csvAction(UserRepository $repository)
    {
        return CsvStreamedResponse::builder()
            ->setRowsFromDoctrineQueryBuilder(
                $repository->createQueryBuilder('u'),
                function ($user) {
                    return [
                        $user->getId(),
                        $user->getName(),
                    ];
                }
            )
            ->setCsvColumnHeaders([
                'user_id',
                'user_name',
            ])
            ->build()
        ;
    }
}
```

### example 3: Fetch join a to-many collection in QueryBuilder

[](#example-3-fetch-join-a-to-many-collection-in-querybuilder)

Suppress error for `Iterate with fetch join in class ...`.

```
class DefaultController extends Controller
{
    public function csvAction(UserRepository $repository)
    {
        $qb = $repository->createQueryBuilder('u')
            ->leftJoin('u.emails', 'em') // Join to-many collection
        ;

        return CsvStreamedResponse::builder()
            ->setRowsFromDoctrineQueryBuilder(
                $qb,
                function ($user) {
                    return [
                        $user->getId(),
                        $user->getName(),
                        implode(',', $user->getEmails()),
                    ];
                },
                $fetchJoinCollection = true
            )
            ->setCsvColumnHeaders([
                'user_id',
                'user_name',
                'emails',
            ])
            ->build()
        ;
    }
}
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~48 days

Recently: every ~72 days

Total

7

Last Release

2073d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/434940?v=4)[Toshiyuki Fujita](/maintainers/kalibora)[@kalibora](https://github.com/kalibora)

---

Top Contributors

[![kalibora](https://avatars.githubusercontent.com/u/434940?v=4)](https://github.com/kalibora "kalibora (10 commits)")

---

Tags

symfonydoctrine

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kalibora-csv-streamed-response/health.svg)

```
[![Health](https://phpackages.com/badges/kalibora-csv-streamed-response/health.svg)](https://phpackages.com/packages/kalibora-csv-streamed-response)
```

###  Alternatives

[sonata-project/doctrine-orm-admin-bundle

Integrate Doctrine ORM into the SonataAdminBundle

46117.7M154](/packages/sonata-project-doctrine-orm-admin-bundle)[onurb/doctrine-yuml-bundle

Symfony Bundle to visualize the mapping of your entities with Yuml

4198.6k](/packages/onurb-doctrine-yuml-bundle)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1022.4k](/packages/rcsofttech-audit-trail-bundle)[ahmed-bhs/doctrine-doctor

Runtime analysis tool for Doctrine ORM integrated into Symfony Web Profiler. Unlike static linters, it analyzes actual query execution at runtime to detect performance bottlenecks, security vulnerabilities, and best practice violations during development with real execution context and data.

813.1k](/packages/ahmed-bhs-doctrine-doctor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
