PackageTrack
Sign in Get early access

zenstruck/collection

Helpers for iterating/paginating/filtering collections (with Doctrine ORM/DBAL implementations and batch processing utilities).

v0.8.0 918K downloads/mo #3279 most downloaded on Packagist zenstruck/collection

What this package is like to depend on

Last release 8 months ago

08 Dec 2025

Ships fairly regularly

a new release about every 4 months

Nearly every release is documented

notes for 9 of 10 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

10 releases · first in 2023

1 release in the last 12 months

see the full history below

Release timeline

10 releases · Jan 2023 to Dec 2025
2024 2025 2026
Release Pre-release

Releases

latest 10
  1. v0.8.0 08 Dec 2025
    Release notes

    c0cf465 feat: support PHP 8.5, Symfony 8, and DoctrineBundle 3 (#55) by @kbond

    Full Change List

    Open source →
  2. v0.7.0 04 Jul 2025
    Release notes

    Note

    This is only a BC break for static analysis.

    288f2d7 feat!: use array-key as default key type (#53) by @kbond
    5047256 minor: fix sca issues (#53) by @kbond
    2417ebd minor: upgrade phpstan (#53) by @kbond

    Full Change List

    Open source →
  3. v0.6.0 10 May 2025
    Release notes

    f9d54b4 feat(doctrine): allow enabling/disabling output walkers (#49) by @kbond
    7b1bef8 minor: add Symfony 7.3 to CI test matrix (#49) by @kbond

    Full Change List

    Open source →
  4. v0.5.0 23 Nov 2024
    Release notes

    f9d0ee7 minor: adjust test matrix (#48) by @kbond
    c614171 fix(ORM): normalize with modifier when iterating (#48) by @kbond
    4bbf226 minor: test exact iterator matches (#48) by @kbond
    4ebaad6 minor: phpstan exceptions (#46) by @kbond
    ad67bb9 minor: fix test/foundry deprecations (#46) by @kbond
    4020a02 feat: allow ForObject attribute to configure EntityRepository services (#45) by @kbond
    1521cf1 feat: support pagerfanta 4.0+ (#44) by @kbond
    24b90f6 feat: support orm 3+ and dbal 4+ (#44) by @kbond
    c2f1b95 feat(grid): allow callback for searchable by @kbond
    72c8e48 feat: AutoFilter converts lists to In by @kbond
    a685c02 feat: Column::sort() returns default sort if applicable by @kbond
    e78e152 minor: remove unneeded dependency by @kbond
    0c952ef feat: add some grid paginator twig templates by @kbond
    cfad537 feat: data grid (#43) by @kbond
    4e9aa29 feat(spec): add Between specification by @kbond
    1f45e3d feat!: use readonly props for specification data by @kbond
    97f4644 minor: adjust fixcs ci php version by @kbond
    c745588 feat: Specification system (#38) by @kbond
    adcb30e feat: require php 8.1+ and Symfony 6.4+ by @kbond

    Full Change List

    Open source →
  5. v0.4.0 28 Feb 2024
    Release notes

    39e750f fix(orm): failing test with --prefer-lowest by @kbond
    4f0924c fix(orm): handle delete with EntityResult by @kbond
    0e73aff fix(orm): EntityResultQueryBuilder improvements (fixes #40) by @kbond
    a3c8992 fix(orm): make EntityWithAggregates a mixin (fixes #35) by @kbond
    6ef122d feat!: remove Repository (closes #36) by @kbond
    cb45125 minor: optimize creating array collection via collect() by @kbond
    1684c70 feat: add Repository interface by @kbond
    0bc6dc3 feat!: rename Collection::firstWhere() to find() by @kbond
    ac03dd5 minor: cs fixes by @kbond
    2a9438f fix: doctrine/collection 2.0+ support by @kbond
    3640995 feat: add DoctrineBridgeCollection (#34) by @kbond
    5487271 minor: refactor (#34) by @kbond

    Full Change List

    Open source →
  6. v0.3.0 15 Dec 2023
    Release notes

    7431acd feat: support Symfony 7 by @kbond
    2c6276a fix: phpstan by @kbond
    569e337 fix(doctrine): simplify/fix ORMServiceEntityRepository by @kbond
    93db848 minor: adjust deprecation output by @kbond

    Full Change List

    Open source →
  7. v0.2.2 04 Aug 2023
    Release notes

    1f7148c fix(orm): orm inconsistency by @kbond
    9273a47 fix(orm): prevent exception on null result by @kbond

    Full Change List

    Open source →
  8. v0.2.1 14 Jul 2023
    Release notes

    5401c5f minor(orm): refactor tests by @kbond
    f4b1c48 security(orm): prevent passing callable strings to find()/query() by @kbond

    Full Change List

    Open source →
  9. v0.2.0 27 Jun 2023
    Release notes

    d0ee92a feat(doctrine)!: rename ObjectRepository::filter() to query() by @kbond
    90e7307 feat(doctrine): add ObjectRepository::NONE to be used with filter() by @kbond
    a5c8be1 fix(doctrine): test compatibility by @kbond
    4bfc78e feat(doctrine): ORMServiceEntityRepository changes by @kbond
    3c988c5 minor(doctrine): ensure can fetch single result by @kbond
    c365e90 feat(doctrine): add EntityResult::disableFetchJoins() by @kbond
    2b8c3dd feat(doctrine): add ORM(Service)EntityRepository bridges by @kbond
    44d540e feat(doctrine): add EntityRepositoryBridge::createQueryBuilder() by @kbond
    2bece51 feat!: refactor doctrine integration, add Symfony bundle (#32) by @kbond
    ffd6bed minor: refactor LazyCollection by @kbond
    3a9508f feat!: rename ArrayCollection::keyExists() to has() by @kbond
    ee1c700 feat!: rename ArrayCollection::in() to contains() by @kbond
    28dbda3 feat!: make ArrayCollection immutable by @kbond
    46e3f6a feat!: make paginator non-strict by default by @kbond
    93e7e90 minor: adjust Zenstruck\collect() default type and fix sca by @kbond
    999a9e9 feat!: remove the ability to pass null to LazyCollection by @kbond
    d0087d6 minor: adjust FactoryCollection doc blocks by @kbond
    17786b0 feat!: remove DBAL\Repository|Result by @kbond
    f571ca7 sca: remove array-key requirement for Collection key (#31) by @kbond
    f0de13c feat: add methods to Collection (#31) by @kbond
    c0f5a25 minor: add key template to Page/Pages (#31) by @kbond
    a39426e minor: inline phpstan ignores (#31) by @kbond
    10b8de0 feat!: remove LazyCollection::toArray() (#31) by @kbond
    27487b8 feat!: remove Collection::sum() (#31) by @kbond
    0dfb836 feat!: remove Collection::mapWithKeys() (#31) by @kbond
    f440f32 feat!: remove Iterable|ArrayCollection::reject() (#31) by @kbond
    7ea6954 feat!: rename PageCollection -> Pages by @kbond
    2a73a4a minor(doctrine): use attribute mapping for entity fixtures (#30) by @kbond
    e95da00 feat: support uninitialized doctrine collections in LazyCollection (#30) by @kbond
    dfdeaeb feat!: remove DoctrineCollection (#30) by @kbond
    4fa47da fix(orm): fix failing tests by @kbond
    cb81aa2 fix(orm): revert Result::getIterator() change by @kbond
    4a3d99a feat(batch): refactor batch processor/iterator by @kbond
    142300c fix: self -> static by @kbond
    bbf3264 feat!: refactory dbal (#28) by @kbond
    8248c0b feat!: adjust PagerfantaAdapter namespace (#27) by @kbond
    cedbecd feat!: remove specification system (#27) by @kbond
    57252db minor: fix sca by @kbond
    8f0be35 feat: allow calling LazyCollection::eager() if wrapping \Generator by @kbond
    8d5c88d feat!: remove Zenstruck\arr() by @kbond
    b42dde1 feat(specification): add Matchable interface by @kbond

    Full Change List

    Open source →
  10. v0.1.0 16 Jan 2023

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive