Skip to content

Releases

6.4.4

Choose a tag to compare

@datasage datasage released this 08 Nov 17:54
ec6ca91

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

Choose a tag to compare

@datasage datasage released this 07 Oct 00:59
64f5840

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

Choose a tag to compare

@datasage datasage released this 11 Aug 02:07
d701161

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

Choose a tag to compare

@datasage datasage released this 04 Aug 16:21

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-standard prints

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

Choose a tag to compare

@datasage datasage released this 04 Aug 16:20

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 to Psr\Cache\CacheItemPoolInterface instead of the abandoned Doctrine\Common\Cache\Cache.
  • Pre-configured pools are provided by symfony/cache. psr/cache is accepted at ^1.0 || ^2.0 || ^3.0, since only the interface is consumed.
  • Cache\LaminasStorageCache and Cache\DoctrineCacheStorage are removed, along with the top-level caches configuration. The filesystem cache directory moves to doctrine.cache.filesystem.directory.
  • Any PSR-6 implementation can be plugged in: an instance service that already implements CacheItemPoolInterface is used as-is.

Annotations removed

  • doctrine/annotations is 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 a Doctrine\Common\Cache\Cache must move to the PSR-6 API.
  • Anything overriding the caches config must move to doctrine.cache.*.
  • DoctrineORMModule and DoctrineMongoODMModule need matching releases; the conflict bounds require 6.4.0 and 5.4.0 respectively.

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.