3 namespace Drupal\memcache;
5 use Drupal\Core\Cache\CacheFactoryInterface;
6 use Drupal\Core\Cache\CacheTagsChecksumInterface;
7 use Drupal\memcache\Driver\MemcacheDriverFactory;
8 use Drupal\memcache\Invalidator\TimestampInvalidatorInterface;
11 * Class MemcacheBackendFactory.
13 class MemcacheBackendFactory implements CacheFactoryInterface {
16 * The memcache factory object.
18 * @var \Drupal\memcache\Driver\MemcacheDriverFactory
20 protected $memcacheFactory;
23 * The cache tags checksum provider.
25 * @var \Drupal\Core\Cache\CacheTagsChecksumInterface
27 protected $checksumProvider;
30 * The timestamp invalidation provider.
32 * @var \Drupal\memcache\Invalidator\TimestampInvalidatorInterface
34 protected $timestampInvalidator;
37 * Constructs the MemcacheBackendFactory object.
39 * @param \Drupal\memcache\Driver\MemcacheDriverFactory $memcache_factory
40 * The memcache factory object.
41 * @param \Drupal\Core\Cache\CacheTagsChecksumInterface $checksum_provider
42 * The cache tags checksum provider.
43 * @param \Drupal\memcache\Invalidator\TimestampInvalidatorInterface $timestamp_invalidator
44 * The timestamp invalidation provider.
46 public function __construct(MemcacheDriverFactory $memcache_factory, CacheTagsChecksumInterface $checksum_provider, TimestampInvalidatorInterface $timestamp_invalidator) {
47 $this->memcacheFactory = $memcache_factory;
48 $this->checksumProvider = $checksum_provider;
49 $this->timestampInvalidator = $timestamp_invalidator;
53 * Gets MemcacheBackend for the specified cache bin.
56 * The cache bin for which the object is created.
58 * @return \Drupal\memcache\MemcacheBackend
59 * The cache backend object for the specified cache bin.
61 public function get($bin) {
62 return new MemcacheBackend(
64 $this->memcacheFactory->get($bin),
65 $this->checksumProvider,
66 $this->timestampInvalidator