Skip to content

Milestones

List view

  • Feature release (minor)

    No due date
    2/2 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • No due date
    1/1 issues closed
  • Feature release (minor)

    No due date
    2/2 issues closed
  • No due date
    3/3 issues closed
  • No due date
    1/1 issues closed
  • 4.0.x bugfix release (patch)

    No due date
  • Feature release (minor)

    No due date
    5/5 issues closed
  • 4.0.x bugfix release (patch)

    No due date
    1/1 issues closed
  • 3.12.x bugfix release (patch)

    No due date
    2/2 issues closed
  • 3.12.x bugfix release (patch)

    No due date
    2/2 issues closed
  • No due date
    1/1 issues closed
  • No due date
    1/1 issues closed
  • Feature release (minor) ### Added - `AdapterPluginManager` is now configurable via `storage_adapters` ### Changed - Added direct support for `PSR-20` - minimum `laminas/laminas-servicemanager` version was raised to `3.21.0` ### Removed - PHP 8.0 support was removed

    No due date
    4/4 issues closed
  • 3.10.x bugfix release (patch)

    No due date
    2/2 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • Feature release (minor)

    No due date
    2/2 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • Feature release (minor)

    No due date
    4/4 issues closed
  • Feature release (minor)

    No due date
    2/2 issues closed
  • Feature release (minor)

    No due date
    1/1 issues closed
  • 3.1.x bugfix release (patch)

    No due date
    2/2 issues closed
  • 3.1.x bugfix release (patch)

    No due date
    1/1 issues closed
  • Feature release (minor) ### Changes - Cache items which get expired by using `CacheItemInterface#expiresAfter` now start expiring immediately after calling that method. Prior this release, they started to expire after passing them to either `CacheItemPoolInterface#save` or in case they were passed to `CacheItemPoolInterface#saveDeferred` after calling `CacheItemPoolInterface#commit` ### Removed - Support for PHP 7.3

    No due date
    5/5 issues closed
  • 3.1.x bugfix release (patch) ### Changed - In 3.1.0, we released a BC compatibility for v2.12.0+. Sadly we had a slip there and thus the changes were applied to the `StoragePluginFactoryInterface` instead of the `StorageAdapterFactoryInterface`. This release reverts these changes and applies the BC compatibility to the proper factory. ### Breaking Changes - In case you already migrated to 3.1.0 in the last 24h and changed the plugin configuration accordingly, updating to this version would cause breaks in your project. If you haven't changed any configuration, an update wont cause any issues.

    No due date
    1/1 issues closed
  • Feature release (minor) ### Added - Added `adapter` as a compatible array key for storage adapter configurations. This will provide support for the array structure which had to be changed in v2 of `laminas-cache` to be compatible with the v3 release. This was somehow changed in v3 without backporting it to v2 and thus, this change will provide better support for components which have to provide support for both v2 and v3 ### Deprecated - With this release, we are also deprecating the `name` array configuration key which has to be `adapter`.

    No due date
    1/1 issues closed
  • 3.0.x bugfix release (patch)

    No due date
    1/1 issues closed
  • 2.13.x bugfix release (patch)

    No due date
    1/1 issues closed
  • 2.13.x bugfix release (patch)

    No due date
    1/1 issues closed
  • 2.12.x bugfix release (patch)

    No due date
    1/1 issues closed
  • 2.12.x bugfix release (patch) With [2.12.0](https://github.com/laminas/laminas-cache/releases/tag/2.12.0), a better key length handling for the `PSR-16` decorator was introduced. The decorator initially supported 64 characters which was the minimum which `PSR-16` requires to be supported by implementing cache backends. The redis adapter can take keys up to a length of 512 MB which results in a PCRE2 compilation error when validating the cache key length with the `PSR-16` decorator. This release decreases the maximum allowed key length for the `PSR-16` decorator to `65534` to avoid that compilation error. Technically, this would be a BC break, but given the fact that cache adapters with a support for keys bigger than that ran into the compilation error when validating the cache keys, this is rather a necessary bugfix. ### Changed - The maximum supported key length for the `PSR-16` decorator is now `65534` ### Fixes - By decreasing the maximum supported key length for the `PSR-16` decorator, `preg_match` won't result in a compilation error for cache adapters which would support even longer keys.

    No due date
    2/2 issues closed
  • Feature release (minor) ### Changed - The already deprecated `PatternFactory` no longer suggests the `PatternPluginManager` as an alternative. ### Deprecated - Deprecated the `PatternPluginManager` as with v3.0.0, cache pattern do require strict dependency injection. Since most of the cache pattern depend on a storage implementation, which are not longer known by this component as of v3, a dynamic factory for the cache pattern won't be suitable anymore. - Deprecated the pattern factories `PatternCacheFactory` and `StoragePatternCacheFactory` which were introduced in v2.12.0 to provide forward compatibility for the new `StorageCapableInterface` implementing patterns.

    No due date
    2/2 issues closed
  • 2.12.x bugfix release (patch) ### Fixes - This component now only provides the `laminas-cli` config for CLI commands when `symfony/console` is available.

    No due date
    2/2 issues closed
  • 2.11.x bugfix release (patch)

    No due date
    2/2 issues closed
  • `laminas-cache` 4.0.0 is here and finally adds native types **everywhere**, adds support for `psr/cache` and `psr/simple-cache` v2 & v3 and introduces an all new metadata logic which allows adapters to provide metadata they actually support. Please read more on how to migrate your project in our [migration guideline](https://github.com/laminas/laminas-cache/blob/5fc9681221c9120adeb091e084524e953e1434a0/docs/book/v4/migration/to-version-4.md). ### Added - Every adapter which supports `metadata` now implements `MetadataCapableInterface` and provides a dedicated object containing all the metadata values it supports - Adds support for `psr/cache` and `psr/simple-cache` v2 & v3 ### Removed - `supportedMetadata` capability from `Capabilities` - `KeyListIterator::CURRENT_AS_METADATA` mode along with `Laminas\Cache\Exception\MissingKeyException` - automatic instantiation of `SerializerInterface` when calling `PluginOptions#getSerializer` - Increment and decrement feature from `StorageInterface`, so there is no more `StorageInterface#incrementItem`, `StorageInterface#decrementItem`, `StorageInterface#decrementItems` and `StorageInterface#incrementItems` - this also removes `incrementItem`, `incrementItems`, `decrementItem`, `derementItems` events (`pre`, `post` and `exception`) - dependency inversion on virtual package `laminas/laminas-cache-storage-adapter-implementation` which now allows `laminas-cache` to be required without a concrete storage adapter implementation - removed support for `psr/cache` and `psr/simple-cache` v1 ### Breaking Changes - `AbstractAdapter` and `StorageInterface` are not aware of the methods `getMetadata` anymore. These were moved to the new `MetadataCapableInterface` - `Capabilities` do not provide `supportedMetadata` anymore. The supported metadata is tied to the used storage adapter and thus, was already requiring projects to explicitly know the exact implementation of the cache backend in case of using these metadatas anyway - `KeyListIterator` and the corresponding `IteratorInterface` does not provide the `mode` `CURRENT_AS_METADATA` anymore - `PluginOptions#getSerializer` does not create a serializer anymore if a `string` option was passed, instead, the `string` is returned - Increment and decrement feature was removed from `StorageInterface`, so there is no more `StorageInterface#incrementItem`, `StorageInterface#decrementItem`, `StorageInterface#decrementItems` and `StorageInterface#incrementItems` - this also removes `incrementItem`, `incrementItems`, `decrementItem`, `derementItems` events (`pre`, `post` and `exception`) - Every method now has native return types - Every property now has native types - Every method argument now has native types - `ObjectCache` does not inherit the `CallbackCache` pattern anymore

    No due date
    27/27 issues closed
  • 2.11.x bugfix release (patch) ### Fixes - Fixes a bug where decrementing a single key in combination with the `Serializer` plugin actually incremented the value ### Added - Added documentation for the `RedisCluster` adapter which is available in `laminas/laminas-cache-storage-adapter-redis` v1.2.0

    No due date
    3/3 issues closed
  • 2.11.x bugfix release (patch) ### Fixes - Fixes a `PSR-6` deletion regression which was introduced in 2.10.2. The `CacheItemPoolDecorator` now verifies that all keys are absent from the storage. This is now in sync with the `SimpleCacheDecorator`.

    No due date
    1/1 issues closed
  • Feature release (minor) This release focuses on providing forward compatibility to the next major release of this component. With `laminas/laminas-cache` v3, using static factories for the adapters won't be possible anymore as this component wont be aware of which storage adapters are around. All storage adapters will have to populate themselves to the `AdapterPluginManager`. Instead of using the `StorageFactory` (which is marked as deprecated in this release), the `StorageAdapterFactory` (`StorageAdapterFactoryInterface`) should be used. It provides `StorageAdapterFactoryInterface#createFromArrayConfiguration` which consumes the exact same (normalized¹) configuration as `StorageFactory#factory`. There are also replacements for the other methods of the `StorageFactory`: - `StorageAdapterFactoryInterface#create` is a replacement for `StorageFactory#adapterFactory` - `StoragePluginFactoryInterface` is a replacement for the `StorageFactory#pluginFactory` To verify that your projects configuration is compatible with the new normalized¹ configuration, you can use [laminas/laminas-cli](https://docs.laminas.dev/laminas-cli/) with the CLI command `laminas-cache:deprecation:check-storage-factory-config`. ### Added - Added a `laminas-cli` command to check project configuration for deprecated storage configuration. - Added a `StorageAdapterFactoryInterface` which is retrievable via the PSR-11 container when this component is used with either `laminas/laminas-mvc ` or `mezzio/mezzio`. ### Fixed - `CacheItemPoolDecorator#saveDeferred` queued already expired cache items. This has been fixed and thus, the method will return `false` for cache items which are already expired. - `Serializer` plugin treated non-existent cache items as an error and thus did not incremented/decremented these values. Non-existent values must be treated as `0` as this is how adapters handle the increment/decrement when not used with the `Serializer` plugin. ### Changed - The `ExceptionInterface` now extends the `Throwable` interface. - `CallbackCache`, `ObjectCache` and `ClassCache` simplified method calls by avoiding the usage of `call_user_func*` functions. - The `PSR-16` decorator now uses the `maximum key length` capability to better reflect the PSR requirements. `PSR-16` requires that the backend supports at least 64 characters but it may also allow more than 64 characters. ### Deprecated - Deprecated `StorageFactory` in favor of `StorageAdapterFactoryInterface` and `StoragePluginFactoryInterface`. - Deprecated some storage configurations to normalize¹ the configuration for the `StorageAdapterFactoryInterface`. - Deprecated the usage of storage adapters which do not provide the `maximum key length` capability in combination with the `PSR-16` decorator. ¹ _Normalized array configuration example_ ```php [ 'adapter' => 'apcu', 'options' => ['ttl' => 3600], 'plugins' => [ [ 'name' => 'exception_handler', 'options' => [ 'throw_exceptions' => false, ], ], ], ]; ```

    No due date
    18/18 issues closed
  • 2.10.x bugfix release (patch) ### Fixes - Fixes a `PSR-6` deletion regression which was introduced in 2.10.2. The `CacheItemPoolDecorator` now verifies that all keys are absent from the storage. This is now in sync with the `SimpleCacheDecorator`.

    No due date
    1/1 issues closed
  • 2.10.x bugfix release (patch) ### Fixed - The decorator for PSR-6 `CacheItemPool` assumed that a deletion was successful even if the underlying storage failed to delete these items.

    No due date
    2/2 issues closed
  • 2.10.x bugfix release (patch) ### Added - Added documentation for `BlackHole` Adapter

    No due date
    1/1 issues closed
  • This release aims to support PHP 8.0 for `laminas-cache`. In `laminas-cache` v2.10.0, adapters were split into their very own components without receiving any changes. These changes were necessary to keep `laminas-cache` maintainable long term as development can now be focused on these adapters rather than the whole ecosystem. Most of these adapters will not receive support for PHP 8.0. Consequently, they are likely blocking users from migrating to PHP 8.0 if the projects won't start to prepare for `laminas-cache` v3.0.0, which requires all projects to require those adapters which they really use. With laminas-cache v2.10+, Composer comes to the rescue, enabling users to start preparing their project by explicitly using a `require` entry for those adapters which are in use, while "removing" adapters that aren't. To achieve this, the `replace` section of the project's composer.json has to list all adapters which are not used. An example configuration can be found either in the [installation section](https://docs.laminas.dev/laminas-cache/installation/#avoid-unused-cache-adapters-are-being-installed) of the laminas documentation **or** in the [README.md](https://github.com/laminas/laminas-cache/blob/adf7adec9f7da6a7882a24e222a6d5df73aa58f9/README.md#avoid-unused-cache-adapters-are-being-installed) of this package. ### Added - Added support for PHP 8.0 ### Removed - Removed support for PHP prior 7.3 - Removed support for `laminas-servicemanager` and `laminas-eventmanager` in their v2 versions ### Deprecated - `PatternFactory` has been marked as deprecated. Instead of using static factories like this, receiving the `PatternPluginManager` is recommended.

    No due date
    6/6 issues closed
  • `laminas-cache` 3.0.0 is here and finally enables projects to only require those cache adapters which are actually used by the project. Please read more on how to migrate your project in our [migration guideline](https://github.com/laminas/laminas-cache/blob/a9055dfef76660a7676e2ca7ee73d4385abe61d0/docs/book/v3/reference/migration.md). ### Added - Adds PHP 8.1 support to `laminas-cache` - PSR-6 `CacheItemPoolDecorator` now validates the maximum key length - Each cache adapter now has to be implicitly required by a project ### Removed - `StorageFactory` and `PatternFactory` were removed - `ClassCache` pattern was removed while there is no alternative - Both `PatternCacheFactory` and `StoragePatternCacheFactory` (introduced in v2.12.0) in order to provide forward compatibility for v3.0.0 are removed - `PatternPluginManager` and `PatternPluginManagerFactory` were removed since most pattern require an underlying cache adapter which must now be passed via dependency injection rather than an option. Therefore, the `PatternOptions` are not capable of the `storage` option anymore - The PluginManagerLookupTrait which was used to provide forward compatibility for the StorageAdapterFactoryInterface ### Breaking Changes - `CallbackCache`, `OutputCache` and `ObjectCache` now require the underlying cache adapter (`StorageInterface`) as 1st `__construct` dependency. The options can be passed via 2nd `__construct)[https://github.com/CallbackCache`, `OutputCache` and `ObjectCache` now require the underlying cache adapter (`StorageInterface` arguments but are optional. **Please note that it is not possible to inject the pattern configuration as an array anymore** - Storage configurations must be in a specific shape. For more details, head to the release notes of [2.12.0](https://github.com/laminas/laminas-cache/releases/tag/2.12.0) - All cache adapters are now marked as `final` and are not extensible anymore. In case that you are extending one of the cache adapters, please change your code as `composition` should be preferred over `inheritance`. For an example, please check out the [composition over inheritance](#composition-over-inheritance) section. - Due to the enhancement of `CacheItemPoolDecorator`, the maximum key length for the underlying cache adapter is validated before it is passed to the adapter. - The `SerializationTrait` which was meant to be used by both `PSR-6` and `PSR-16` decorators is now marked as `internal`. - The `PCRE_MAXIMUM_QUANTIFIER_LENGTH` constant of the `SimpleCacheDecorator` (which was marked as `internal`) has now been moved to the new (also `internal`) `MaximumKeyLengthTrait` and thus had to become a public static property (as traits do not support constants). ---- All compatible satellite packages which do support `laminas-cache` v3 can be found [here](https://github.com/laminas/laminas-cache/blob/a9055dfef76660a7676e2ca7ee73d4385abe61d0/docs/book/v3/reference/migration.md#satellite-packages).

    No due date
    25/25 issues closed
  • Initial release to introduce `laminas-cache-storage-adapter-*` satellite packages

    No due date
    18/18 issues closed