Version 1
[yaffs-website] / web / modules / contrib / memcache / src / MemcacheBackendFactory.php
1 <?php
2
3 /**
4  * @file
5  * Contains \Drupal\memcache\MemcacheBackendFactory.
6  */
7
8 namespace Drupal\memcache;
9
10 use Drupal\Core\Lock\LockBackendInterface;
11 use Drupal\Core\Cache\CacheTagsChecksumInterface;
12
13 /**
14  * Class DatabaseBackendFactory.
15  */
16 class MemcacheBackendFactory {
17
18   /**
19    * The lock backend that should be used.
20    *
21    * @var \Drupal\Core\Lock\LockBackendInterface
22    */
23   protected $lock;
24
25   /**
26    * The settings object.
27    *
28    * @var \Drupal\memcache\DrupalMemcacheConfig
29    */
30   protected $settings;
31
32   /**
33    * The memcache factory object.
34    *
35    * @var \Drupal\memcache\DrupalMemcacheFactory
36    */
37   protected $memcacheFactory;
38
39   /**
40    * The cache tags checksum provider.
41    *
42    * @var \Drupal\Core\Cache\CacheTagsChecksumInterface
43    */
44   protected $checksumProvider;
45
46   /**
47    * Constructs the DatabaseBackendFactory object.
48    *
49    * @param \Drupal\Core\Lock\LockBackendInterface $lock
50    * @param \Drupal\memcache\DrupalMemcacheConfig $settings
51    * @param \Drupal\memcache\DrupalMemcacheFactory $memcache_factory
52    */
53   function __construct(LockBackendInterface $lock, DrupalMemcacheConfig $settings, DrupalMemcacheFactory $memcache_factory, CacheTagsChecksumInterface $checksum_provider) {
54     $this->lock = $lock;
55     $this->settings = $settings;
56     $this->memcacheFactory = $memcache_factory;
57     $this->checksumProvider = $checksum_provider;
58   }
59
60   /**
61    * Gets MemcacheBackend for the specified cache bin.
62    *
63    * @param $bin
64    *   The cache bin for which the object is created.
65    *
66    * @return \Drupal\memcache\MemcacheBackend
67    *   The cache backend object for the specified cache bin.
68    */
69   public function get($bin) {
70     return new MemcacheBackend(
71       $bin,
72       $this->memcacheFactory->get($bin),
73       $this->lock,
74       $this->settings,
75       $this->checksumProvider
76     );
77   }
78
79 }