Skip to content

v2.3

Choose a tag to compare

@njoubert-cleverage njoubert-cleverage released this 21 Oct 12:54
· 19 commits to main since this release

Changes

  • Require cleverage/process-bundle ^5.4.
  • Please follow UPGRADE.md v2.3
  • #67 A Symfony cache pool (a service implementing Symfony\Component\Cache\Adapter\AdapterInterface, e.g. parent: cache.adapter.filesystem or class: ArrayAdapter) can be tagged directly cleverage.cache.adapter with a code, without any adapter class: RegisterAdaptersPass wraps it in an Adapter with this code, loaded lazily. A tagged service implementing neither this interface nor the AdapterInterface of the bundle fails the container compilation. Update documentation, add tests.
  • #65 The configuration key of the bundle (its extension alias) is cleverage_cache_process, instead of clever_age_cache_process (no option could be configured there). Configuring a key under cleverage_cache_process is deprecated: the bundle has no configuration and the keys were ignored without notice (new internal Configuration, empty; notice when the container is compiled). They will be rejected in 3.0. Require symfony/deprecation-contracts, used directly. Update documentation, add tests.
  • #63 The bundle throws exceptions implementing ProcessExceptionInterface of the process bundle instead of raw SPL exceptions (as cleverage/process-bundle#317): new Exception\UnexpectedValueException, extending the SPL exceptions thrown before (same messages, the existing catch keep working). MissingAdapterException implements ProcessExceptionInterface. Add tests.
  • #61 Composer: require PHP ^8.2 instead of >=8.2 (PHP 9 is no longer accepted before being tested), remove the authorization of the symfony/flex plugin, which is not required (the CI installs it globally), as cleverage/process-bundle#319.
  • #56 Define the public API (Symfony BC promise, as cleverage/process-bundle#279): GetTask, SetTask, AdapterRegistry and CleverAgeCacheProcessBundle are marked @final since 2.3, they will be final in 3.0: extending them triggers a deprecation with the Symfony DebugClassLoader. AbstractCacheTask, Adapter (extended by the applications) and MissingAdapterException stay open. CleverAgeCacheProcessExtension and RegisterAdaptersPass are marked @internal.
  • #55 CleverAgeCacheProcessExtension::findServices() loads the service definition files with a glob pattern instead of a Finder (same files, as cleverage/process-bundle#271), symfony/finder is no longer required. Add tests.
  • #53 AdapterRegistry: the adapters are loaded lazily from a service locator indexed by code: an adapter is only instantiated when a task uses it (an error in an adapter that a process does not use no longer makes it fail). The code is given by the new code attribute of the cleverage.cache.adapter tag, or by the new #[AsCacheAdapter(code: '...')] attribute (autoconfiguration); it must be the one returned by getCode(). Duplicate or empty codes fail the container compilation. An adapter tagged without code is still registered eagerly, with AdapterRegistry::addAdapter(), which is deprecated (the code will be required in 3.0). New optional AdapterRegistry constructor argument (the locator), new hasAdapter() and getAdapters() methods. Require symfony/service-contracts. Update documentation, add tests.
  • #51 Use the PHP 8.3 to 8.5 functions through the Symfony polyfills (cleverage/process-bundle#299): require symfony/polyfill-php83, symfony/polyfill-php84 and symfony/polyfill-php85. Rector is configured with the minimum supported PHP version (withPhpVersion(PhpVersion::PHP_82), it used PHP 8.5 features) and withPhpSets() without explicit version, which applies the rules using a newer function when its polyfill is required (no change on the current code). Document it in CONTRIBUTING.md.
  • #49 Add a CleverAge\CacheProcessBundle\Registry\AdapterRegistry alias of the cleverage_cache_process.registry.adapter service: the registry can be autowired, e.g. in a custom cache task extending AbstractCacheTask. Update documentation, add tests.
  • #43 Give a code to the tasks (cleverage/process-bundle#91): cache_get and cache_set (task: cache_get, with cleverage/process-bundle 5.4 or later, referencing them by service being deprecated there). The tasks have their class name as service id; fetching them directly from the service container is deprecated (container.private), they will be private in 3.0. The former ids cleverage_cache_process.task.get / cleverage_cache_process.task.set are deprecated aliases, removed in 3.0. Update documentation, add tests.
  • #41 CI: test the lowest versions allowed by composer.json (--prefer-lowest, PHP 8.2).
  • #39 Add a .gitattributes: the development files (.docker/, .github/, tests/, quality tools and PHPUnit configurations, Makefile) are no longer part of the archive installed by Composer (dist).
  • #37 Require psr/cache, used directly by Adapter and AbstractCacheTask but only installed through symfony/cache and cleverage/process-bundle.