Repository navigation
Releases
6.4.4
laminas/laminas-form is now an optional dependency. Only the ObjectSelect, ObjectRadio and ObjectMultiCheckbox form elements use it; nothing else in the module, its configuration or its CLI references it. It moves from require to require-dev and is listed under suggest.
Applications that use the form elements already depend on laminas-form for the forms they add them to. If yours relied on this package to install it, require laminas/laminas-form directly. The form element documentation now says so.
6.4.3
Fixes Paginator\Adapter\Selectable::count() with doctrine/collections 3. It passed null to Criteria::setFirstResult(), which collections 3 types as int, so count() threw a TypeError whenever collections 3 was installed. It now passes 0, which collections 2.x already asked for in a deprecation.
Declares PHP 8.6 support. The php constraint gains ~8.6.0; the floor is unchanged. CI now runs 8.6 with PHP platform requirements ignored there, because upstream laminas packages still cap PHP at ~8.5.0.
CI: config.platform.ext-mongodb moves from 2.1.1 to 2.4.0. A Packagist advisory published 2026-10-05 blocks mongodb/mongodb < 2.4.2, which made every composer update in CI unresolvable. This affects this repository only, not consumers.
The spl_object_hash() deprecations you may still see on 8.6 come from laminas/laminas-servicemanager, which is not forked and remains unfixed upstream.
6.4.2
laminas/laminas-modulemanager now accepts ^3.0 as an alternative arm alongside the existing range.
modulemanager 3.0 removes the laminas-config dependency, which changes two things: ConfigListener::loadConfigFile() accepts PHP config files only, and getMergedConfig() no longer takes $returnConfigAsObject and always returns an array. Neither is used here — this package does not call getMergedConfig() and does not load non-PHP config.
Nothing else changes; the existing arm is untouched, so current consumers are unaffected. No src/ changes and no lock movement.
6.4.1
CI fixes only. No functional or dependency changes since 6.4.0.
Coding Standards job
The job failed on 6.4.0 even though phpcs reported no violations — the checkstyle report it produced was completely empty.
The reusable workflow pipes that report into cs2pr. Version 6.0.0 ran phpcs -q --no-colors --report=checkstyle | cs2pr, but 15.1.0 dropped the -q. Without it, two things land on stdout ahead of the XML:
- progress output, enabled by our own
<arg value="nps"/> - the deprecated-sniff banner that
doctrine/coding-standardprints
cs2pr then cannot parse its input and exits 2.
Changing that argument from nps to nqs runs phpcs quietly regardless of how the workflow invokes it, leaving stdout as pure XML.
Documentation workflow
Removed — the docs are not maintained in this fork. The docs/ directory itself is unchanged.
6.4.0
First release of the datasage fork. Modernises the dependency surface and adds PHP 8.5 support.
Supported PHP: 8.2 – 8.5. PHP 8.1 is dropped.
Cache: laminas-cache → PSR-6
doctrine.cache.*services now resolve toPsr\Cache\CacheItemPoolInterfaceinstead of the abandonedDoctrine\Common\Cache\Cache.- Pre-configured pools are provided by
symfony/cache.psr/cacheis accepted at^1.0 || ^2.0 || ^3.0, since only the interface is consumed. Cache\LaminasStorageCacheandCache\DoctrineCacheStorageare removed, along with the top-levelcachesconfiguration. The filesystem cache directory moves todoctrine.cache.filesystem.directory.- Any PSR-6 implementation can be plugged in: an
instanceservice that already implementsCacheItemPoolInterfaceis used as-is.
Annotations removed
doctrine/annotationsis dropped. Mapping must be declared with PHP attributes.Options\Driver::getCache()is removed.setCache()remains as a deprecated no-op so existing driver configuration keeps loading.
Dependencies
Removed: doctrine/cache, doctrine/annotations, laminas/laminas-cache (+ storage adapters), composer/semver, composer-runtime-api.
Moved to suggest: laminas/laminas-mvc and doctrine/doctrine-laminas-hydrator. Neither was used by src/, and both blocked PHP 8.5 — laminas-mvc has no 8.5 release on any branch, and the hydrator's only 8.5-capable version would have forced every consumer onto ORM 3.
Widened:
| Package | Was | Now |
|---|---|---|
doctrine/collections |
^2.0 |
^2.0 || ^3.0 |
doctrine/persistence |
^3.0 |
^3.0 || ^4.0 |
psr/container |
^1.1 |
^1.1 || ^2.0 |
symfony/console |
^6.2 || ^7.0 |
^6.2 || ^7.0 || ^8.0 |
laminas/laminas-servicemanager |
^3.17 |
^3.17 || ^4.0 |
laminas/laminas-validator |
^2.25 |
^2.25 || ^3.0 |
laminas/laminas-paginator |
^2.13 |
^2.13 || ^3.0 |
doctrine/orm 2.20 remains resolvable on PHP 8.5, so no ORM 2 → 3 migration is forced.
CLI
bin/doctrine-module no longer requires laminas-mvc. It still boots a full MVC application when laminas-mvc is installed — preserving module onBootstrap() listeners — and wires the module manager directly otherwise.
Upgrading
- Consumers reading
doctrine.cache.*as aDoctrine\Common\Cache\Cachemust move to the PSR-6 API. - Anything overriding the
cachesconfig must move todoctrine.cache.*. DoctrineORMModuleandDoctrineMongoODMModuleneed matching releases; the conflict bounds require6.4.0and5.4.0respectively.
Verified by resolving and running the suite inside real PHP 8.2, 8.3, 8.4 and 8.5 containers, plus --prefer-lowest on 8.2.