Convert Drupal 8 Cache objects to PSR-16 compliant cache objects
composer require highwire\drupal-psr-16
<?php
$drupalcache = \Drupal::cache('mybin');
$psr16cache = new \HighWire\DrupalPSR16\Cache($drupalcache);
// Now do something with the PSR-16 compliant cache
services:
cache.mybin: # Custom cache bin called 'mybin'
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory: cache_factory:get
arguments: [mybin]
psr16.mybin: # PSR 16 service that returns a bin as a PSR-16 compliant object
class: HighWire\DrupalPSR16\Cache
arguments: ['@cache.mybin']
psr16.default: # PSR 16 service that returns the default bin as a PSR-16 compliant object
class: HighWire\DrupalPSR16\Cache
arguments: ['@cache.default']
3rdparty.library: # 3rd Party Library that takes a PSR-16 compliant cache controller
class: Some\Third\Party\Library
arguments: ['@some.other.service']
calls:
- [setCache, ['@psr16.mybin']]