PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / orm / src / Cache / DefaultCacheFactory.php
mailpoet / vendor-prefixed / doctrine / orm / src / Cache Last commit date
Exception 9 months ago Logging 9 months ago Persister 9 months ago Region 9 months ago AssociationCacheEntry.php 9 months ago CacheConfiguration.php 9 months ago CacheEntry.php 9 months ago CacheException.php 9 months ago CacheFactory.php 9 months ago CacheKey.php 9 months ago CollectionCacheEntry.php 9 months ago CollectionCacheKey.php 9 months ago CollectionHydrator.php 9 months ago ConcurrentRegion.php 9 months ago DefaultCache.php 9 months ago DefaultCacheFactory.php 9 months ago DefaultCollectionHydrator.php 9 months ago DefaultEntityHydrator.php 9 months ago DefaultQueryCache.php 9 months ago EntityCacheEntry.php 9 months ago EntityCacheKey.php 9 months ago EntityHydrator.php 9 months ago Lock.php 9 months ago LockException.php 9 months ago MultiGetRegion.php 9 months ago QueryCache.php 9 months ago QueryCacheEntry.php 9 months ago QueryCacheKey.php 9 months ago QueryCacheValidator.php 9 months ago Region.php 9 months ago RegionsConfiguration.php 9 months ago TimestampCacheEntry.php 9 months ago TimestampCacheKey.php 9 months ago TimestampQueryCacheValidator.php 9 months ago TimestampRegion.php 9 months ago index.php 9 months ago
DefaultCacheFactory.php
146 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM\Cache;
4 if (!defined('ABSPATH')) exit;
5 use MailPoetVendor\Doctrine\Common\Cache\Cache as LegacyCache;
6 use MailPoetVendor\Doctrine\Common\Cache\Psr6\CacheAdapter;
7 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
8 use MailPoetVendor\Doctrine\ORM\Cache;
9 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Collection\NonStrictReadWriteCachedCollectionPersister;
10 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Collection\ReadOnlyCachedCollectionPersister;
11 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Collection\ReadWriteCachedCollectionPersister;
12 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Entity\NonStrictReadWriteCachedEntityPersister;
13 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Entity\ReadOnlyCachedEntityPersister;
14 use MailPoetVendor\Doctrine\ORM\Cache\Persister\Entity\ReadWriteCachedEntityPersister;
15 use MailPoetVendor\Doctrine\ORM\Cache\Region\DefaultRegion;
16 use MailPoetVendor\Doctrine\ORM\Cache\Region\FileLockRegion;
17 use MailPoetVendor\Doctrine\ORM\Cache\Region\UpdateTimestampCache;
18 use MailPoetVendor\Doctrine\ORM\EntityManagerInterface;
19 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
20 use MailPoetVendor\Doctrine\ORM\Persisters\Collection\CollectionPersister;
21 use MailPoetVendor\Doctrine\ORM\Persisters\Entity\EntityPersister;
22 use InvalidArgumentException;
23 use LogicException;
24 use MailPoetVendor\Psr\Cache\CacheItemPoolInterface;
25 use TypeError;
26 use function assert;
27 use function get_debug_type;
28 use function sprintf;
29 use const DIRECTORY_SEPARATOR;
30 class DefaultCacheFactory implements CacheFactory
31 {
32 private $cacheItemPool;
33 private $regionsConfig;
34 private $timestampRegion;
35 private $regions = [];
36 private $fileLockRegionDirectory;
37 public function __construct(RegionsConfiguration $cacheConfig, $cacheItemPool)
38 {
39 if ($cacheItemPool instanceof LegacyCache) {
40 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9322', 'Passing an instance of %s to %s is deprecated, pass a %s instead.', get_debug_type($cacheItemPool), __METHOD__, CacheItemPoolInterface::class);
41 $this->cacheItemPool = CacheAdapter::wrap($cacheItemPool);
42 } elseif (!$cacheItemPool instanceof CacheItemPoolInterface) {
43 throw new TypeError(sprintf('%s: Parameter #2 is expected to be an instance of %s, got %s.', __METHOD__, CacheItemPoolInterface::class, get_debug_type($cacheItemPool)));
44 } else {
45 $this->cacheItemPool = $cacheItemPool;
46 }
47 $this->regionsConfig = $cacheConfig;
48 }
49 public function setFileLockRegionDirectory($fileLockRegionDirectory)
50 {
51 $this->fileLockRegionDirectory = (string) $fileLockRegionDirectory;
52 }
53 public function getFileLockRegionDirectory()
54 {
55 return $this->fileLockRegionDirectory;
56 }
57 public function setRegion(Region $region)
58 {
59 $this->regions[$region->getName()] = $region;
60 }
61 public function setTimestampRegion(TimestampRegion $region)
62 {
63 $this->timestampRegion = $region;
64 }
65 public function buildCachedEntityPersister(EntityManagerInterface $em, EntityPersister $persister, ClassMetadata $metadata)
66 {
67 assert($metadata->cache !== null);
68 $region = $this->getRegion($metadata->cache);
69 $usage = $metadata->cache['usage'];
70 if ($usage === ClassMetadata::CACHE_USAGE_READ_ONLY) {
71 return new ReadOnlyCachedEntityPersister($persister, $region, $em, $metadata);
72 }
73 if ($usage === ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE) {
74 return new NonStrictReadWriteCachedEntityPersister($persister, $region, $em, $metadata);
75 }
76 if ($usage === ClassMetadata::CACHE_USAGE_READ_WRITE) {
77 if (!$region instanceof ConcurrentRegion) {
78 throw new InvalidArgumentException(sprintf('Unable to use access strategy type of [%s] without a ConcurrentRegion', $usage));
79 }
80 return new ReadWriteCachedEntityPersister($persister, $region, $em, $metadata);
81 }
82 throw new InvalidArgumentException(sprintf('Unrecognized access strategy type [%s]', $usage));
83 }
84 public function buildCachedCollectionPersister(EntityManagerInterface $em, CollectionPersister $persister, array $mapping)
85 {
86 assert(isset($mapping['cache']));
87 $usage = $mapping['cache']['usage'];
88 $region = $this->getRegion($mapping['cache']);
89 if ($usage === ClassMetadata::CACHE_USAGE_READ_ONLY) {
90 return new ReadOnlyCachedCollectionPersister($persister, $region, $em, $mapping);
91 }
92 if ($usage === ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE) {
93 return new NonStrictReadWriteCachedCollectionPersister($persister, $region, $em, $mapping);
94 }
95 if ($usage === ClassMetadata::CACHE_USAGE_READ_WRITE) {
96 if (!$region instanceof ConcurrentRegion) {
97 throw new InvalidArgumentException(sprintf('Unable to use access strategy type of [%s] without a ConcurrentRegion', $usage));
98 }
99 return new ReadWriteCachedCollectionPersister($persister, $region, $em, $mapping);
100 }
101 throw new InvalidArgumentException(sprintf('Unrecognized access strategy type [%s]', $usage));
102 }
103 public function buildQueryCache(EntityManagerInterface $em, $regionName = null)
104 {
105 return new DefaultQueryCache($em, $this->getRegion(['region' => $regionName ?: Cache::DEFAULT_QUERY_REGION_NAME, 'usage' => ClassMetadata::CACHE_USAGE_NONSTRICT_READ_WRITE]));
106 }
107 public function buildCollectionHydrator(EntityManagerInterface $em, array $mapping)
108 {
109 return new DefaultCollectionHydrator($em);
110 }
111 public function buildEntityHydrator(EntityManagerInterface $em, ClassMetadata $metadata)
112 {
113 return new DefaultEntityHydrator($em);
114 }
115 public function getRegion(array $cache)
116 {
117 if (isset($this->regions[$cache['region']])) {
118 return $this->regions[$cache['region']];
119 }
120 $name = $cache['region'];
121 $lifetime = $this->regionsConfig->getLifetime($cache['region']);
122 $region = new DefaultRegion($name, $this->cacheItemPool, $lifetime);
123 if ($cache['usage'] === ClassMetadata::CACHE_USAGE_READ_WRITE) {
124 if ($this->fileLockRegionDirectory === '' || $this->fileLockRegionDirectory === null) {
125 throw new LogicException('If you want to use a "READ_WRITE" cache an implementation of "MailPoetVendor\\Doctrine\\ORM\\Cache\\ConcurrentRegion" is required, ' . 'The default implementation provided by doctrine is "MailPoetVendor\\Doctrine\\ORM\\Cache\\Region\\FileLockRegion" if you want to use it please provide a valid directory, DefaultCacheFactory#setFileLockRegionDirectory(). ');
126 }
127 $directory = $this->fileLockRegionDirectory . DIRECTORY_SEPARATOR . $cache['region'];
128 $region = new FileLockRegion($region, $directory, (string) $this->regionsConfig->getLockLifetime($cache['region']));
129 }
130 return $this->regions[$cache['region']] = $region;
131 }
132 public function getTimestampRegion()
133 {
134 if ($this->timestampRegion === null) {
135 $name = Cache::DEFAULT_TIMESTAMP_REGION_NAME;
136 $lifetime = $this->regionsConfig->getLifetime($name);
137 $this->timestampRegion = new UpdateTimestampCache($name, $this->cacheItemPool, $lifetime);
138 }
139 return $this->timestampRegion;
140 }
141 public function createCache(EntityManagerInterface $entityManager)
142 {
143 return new DefaultCache($entityManager);
144 }
145 }
146