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 / DefaultCache.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
DefaultCache.php
185 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM\Cache;
4 if (!defined('ABSPATH')) exit;
5 use MailPoetVendor\Doctrine\ORM\Cache;
6 use MailPoetVendor\Doctrine\ORM\Cache\Persister\CachedPersister;
7 use MailPoetVendor\Doctrine\ORM\EntityManagerInterface;
8 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
9 use MailPoetVendor\Doctrine\ORM\ORMInvalidArgumentException;
10 use MailPoetVendor\Doctrine\ORM\Proxy\DefaultProxyClassNameResolver;
11 use MailPoetVendor\Doctrine\ORM\UnitOfWork;
12 use function is_array;
13 use function is_object;
14 class DefaultCache implements Cache
15 {
16 private $em;
17 private $uow;
18 private $cacheFactory;
19 private $queryCaches = [];
20 private $defaultQueryCache;
21 public function __construct(EntityManagerInterface $em)
22 {
23 $this->em = $em;
24 $this->uow = $em->getUnitOfWork();
25 $this->cacheFactory = $em->getConfiguration()->getSecondLevelCacheConfiguration()->getCacheFactory();
26 }
27 public function getEntityCacheRegion($className)
28 {
29 $metadata = $this->em->getClassMetadata($className);
30 $persister = $this->uow->getEntityPersister($metadata->rootEntityName);
31 if (!$persister instanceof CachedPersister) {
32 return null;
33 }
34 return $persister->getCacheRegion();
35 }
36 public function getCollectionCacheRegion($className, $association)
37 {
38 $metadata = $this->em->getClassMetadata($className);
39 $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association));
40 if (!$persister instanceof CachedPersister) {
41 return null;
42 }
43 return $persister->getCacheRegion();
44 }
45 public function containsEntity($className, $identifier)
46 {
47 $metadata = $this->em->getClassMetadata($className);
48 $persister = $this->uow->getEntityPersister($metadata->rootEntityName);
49 if (!$persister instanceof CachedPersister) {
50 return \false;
51 }
52 return $persister->getCacheRegion()->contains($this->buildEntityCacheKey($metadata, $identifier));
53 }
54 public function evictEntity($className, $identifier)
55 {
56 $metadata = $this->em->getClassMetadata($className);
57 $persister = $this->uow->getEntityPersister($metadata->rootEntityName);
58 if (!$persister instanceof CachedPersister) {
59 return;
60 }
61 $persister->getCacheRegion()->evict($this->buildEntityCacheKey($metadata, $identifier));
62 }
63 public function evictEntityRegion($className)
64 {
65 $metadata = $this->em->getClassMetadata($className);
66 $persister = $this->uow->getEntityPersister($metadata->rootEntityName);
67 if (!$persister instanceof CachedPersister) {
68 return;
69 }
70 $persister->getCacheRegion()->evictAll();
71 }
72 public function evictEntityRegions()
73 {
74 $metadatas = $this->em->getMetadataFactory()->getAllMetadata();
75 foreach ($metadatas as $metadata) {
76 $persister = $this->uow->getEntityPersister($metadata->rootEntityName);
77 if (!$persister instanceof CachedPersister) {
78 continue;
79 }
80 $persister->getCacheRegion()->evictAll();
81 }
82 }
83 public function containsCollection($className, $association, $ownerIdentifier)
84 {
85 $metadata = $this->em->getClassMetadata($className);
86 $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association));
87 if (!$persister instanceof CachedPersister) {
88 return \false;
89 }
90 return $persister->getCacheRegion()->contains($this->buildCollectionCacheKey($metadata, $association, $ownerIdentifier));
91 }
92 public function evictCollection($className, $association, $ownerIdentifier)
93 {
94 $metadata = $this->em->getClassMetadata($className);
95 $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association));
96 if (!$persister instanceof CachedPersister) {
97 return;
98 }
99 $persister->getCacheRegion()->evict($this->buildCollectionCacheKey($metadata, $association, $ownerIdentifier));
100 }
101 public function evictCollectionRegion($className, $association)
102 {
103 $metadata = $this->em->getClassMetadata($className);
104 $persister = $this->uow->getCollectionPersister($metadata->getAssociationMapping($association));
105 if (!$persister instanceof CachedPersister) {
106 return;
107 }
108 $persister->getCacheRegion()->evictAll();
109 }
110 public function evictCollectionRegions()
111 {
112 $metadatas = $this->em->getMetadataFactory()->getAllMetadata();
113 foreach ($metadatas as $metadata) {
114 foreach ($metadata->associationMappings as $association) {
115 if (!$association['type'] & ClassMetadata::TO_MANY) {
116 continue;
117 }
118 $persister = $this->uow->getCollectionPersister($association);
119 if (!$persister instanceof CachedPersister) {
120 continue;
121 }
122 $persister->getCacheRegion()->evictAll();
123 }
124 }
125 }
126 public function containsQuery($regionName)
127 {
128 return isset($this->queryCaches[$regionName]);
129 }
130 public function evictQueryRegion($regionName = null)
131 {
132 if ($regionName === null && $this->defaultQueryCache !== null) {
133 $this->defaultQueryCache->clear();
134 return;
135 }
136 if (isset($this->queryCaches[$regionName])) {
137 $this->queryCaches[$regionName]->clear();
138 }
139 }
140 public function evictQueryRegions()
141 {
142 $this->getQueryCache()->clear();
143 foreach ($this->queryCaches as $queryCache) {
144 $queryCache->clear();
145 }
146 }
147 public function getQueryCache($regionName = null)
148 {
149 if ($regionName === null) {
150 return $this->defaultQueryCache ?: ($this->defaultQueryCache = $this->cacheFactory->buildQueryCache($this->em));
151 }
152 if (!isset($this->queryCaches[$regionName])) {
153 $this->queryCaches[$regionName] = $this->cacheFactory->buildQueryCache($this->em, $regionName);
154 }
155 return $this->queryCaches[$regionName];
156 }
157 private function buildEntityCacheKey(ClassMetadata $metadata, $identifier) : EntityCacheKey
158 {
159 if (!is_array($identifier)) {
160 $identifier = $this->toIdentifierArray($metadata, $identifier);
161 }
162 return new EntityCacheKey($metadata->rootEntityName, $identifier);
163 }
164 private function buildCollectionCacheKey(ClassMetadata $metadata, string $association, $ownerIdentifier) : CollectionCacheKey
165 {
166 if (!is_array($ownerIdentifier)) {
167 $ownerIdentifier = $this->toIdentifierArray($metadata, $ownerIdentifier);
168 }
169 return new CollectionCacheKey($metadata->rootEntityName, $association, $ownerIdentifier);
170 }
171 private function toIdentifierArray(ClassMetadata $metadata, $identifier) : array
172 {
173 if (is_object($identifier)) {
174 $class = DefaultProxyClassNameResolver::getClass($identifier);
175 if ($this->em->getMetadataFactory()->hasMetadataFor($class)) {
176 $identifier = $this->uow->getSingleIdentifierValue($identifier);
177 if ($identifier === null) {
178 throw ORMInvalidArgumentException::invalidIdentifierBindingEntity($class);
179 }
180 }
181 }
182 return [$metadata->identifier[0] => $identifier];
183 }
184 }
185