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 / Configuration.php
mailpoet / vendor-prefixed / doctrine / orm / src Last commit date
Cache 9 months ago Decorator 9 months ago Event 9 months ago Exception 9 months ago Id 9 months ago Internal 9 months ago Mapping 9 months ago Persisters 8 months ago Proxy 9 months ago Query 9 months ago Repository 9 months ago Tools 9 months ago Utility 9 months ago AbstractQuery.php 9 months ago Cache.php 9 months ago Configuration.php 9 months ago EntityManager.php 9 months ago EntityManagerInterface.php 9 months ago EntityNotFoundException.php 9 months ago EntityRepository.php 9 months ago Events.php 9 months ago LazyCriteriaCollection.php 9 months ago NativeQuery.php 9 months ago NoResultException.php 9 months ago NonUniqueResultException.php 9 months ago ORMException.php 9 months ago ORMInvalidArgumentException.php 9 months ago ORMSetup.php 9 months ago OptimisticLockException.php 9 months ago PersistentCollection.php 9 months ago PessimisticLockException.php 9 months ago Query.php 9 months ago QueryBuilder.php 9 months ago TransactionRequiredException.php 9 months ago UnexpectedResultException.php 9 months ago UnitOfWork.php 9 months ago Version.php 9 months ago index.php 9 months ago
Configuration.php
492 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\ORM;
4 if (!defined('ABSPATH')) exit;
5 use BadMethodCallException;
6 use MailPoetVendor\Doctrine\Common\Annotations\AnnotationReader;
7 use MailPoetVendor\Doctrine\Common\Annotations\CachedReader;
8 use MailPoetVendor\Doctrine\Common\Annotations\SimpleAnnotationReader;
9 use MailPoetVendor\Doctrine\Common\Cache\ArrayCache;
10 use MailPoetVendor\Doctrine\Common\Cache\Cache as CacheDriver;
11 use MailPoetVendor\Doctrine\Common\Cache\Psr6\CacheAdapter;
12 use MailPoetVendor\Doctrine\Common\Cache\Psr6\DoctrineProvider;
13 use MailPoetVendor\Doctrine\Common\Persistence\PersistentObject;
14 use MailPoetVendor\Doctrine\DBAL\Platforms\AbstractPlatform;
15 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
16 use MailPoetVendor\Doctrine\ORM\Cache\CacheConfiguration;
17 use MailPoetVendor\Doctrine\ORM\Cache\Exception\CacheException;
18 use MailPoetVendor\Doctrine\ORM\Cache\Exception\MetadataCacheNotConfigured;
19 use MailPoetVendor\Doctrine\ORM\Cache\Exception\MetadataCacheUsesNonPersistentCache;
20 use MailPoetVendor\Doctrine\ORM\Cache\Exception\QueryCacheNotConfigured;
21 use MailPoetVendor\Doctrine\ORM\Cache\Exception\QueryCacheUsesNonPersistentCache;
22 use MailPoetVendor\Doctrine\ORM\Exception\InvalidEntityRepository;
23 use MailPoetVendor\Doctrine\ORM\Exception\NamedNativeQueryNotFound;
24 use MailPoetVendor\Doctrine\ORM\Exception\NamedQueryNotFound;
25 use MailPoetVendor\Doctrine\ORM\Exception\NotSupported;
26 use MailPoetVendor\Doctrine\ORM\Exception\ProxyClassesAlwaysRegenerating;
27 use MailPoetVendor\Doctrine\ORM\Exception\UnknownEntityNamespace;
28 use MailPoetVendor\Doctrine\ORM\Internal\Hydration\AbstractHydrator;
29 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadata;
30 use MailPoetVendor\Doctrine\ORM\Mapping\ClassMetadataFactory;
31 use MailPoetVendor\Doctrine\ORM\Mapping\DefaultEntityListenerResolver;
32 use MailPoetVendor\Doctrine\ORM\Mapping\DefaultNamingStrategy;
33 use MailPoetVendor\Doctrine\ORM\Mapping\DefaultQuoteStrategy;
34 use MailPoetVendor\Doctrine\ORM\Mapping\Driver\AnnotationDriver;
35 use MailPoetVendor\Doctrine\ORM\Mapping\EntityListenerResolver;
36 use MailPoetVendor\Doctrine\ORM\Mapping\NamingStrategy;
37 use MailPoetVendor\Doctrine\ORM\Mapping\QuoteStrategy;
38 use MailPoetVendor\Doctrine\ORM\Mapping\TypedFieldMapper;
39 use MailPoetVendor\Doctrine\ORM\Proxy\ProxyFactory;
40 use MailPoetVendor\Doctrine\ORM\Query\AST\Functions\FunctionNode;
41 use MailPoetVendor\Doctrine\ORM\Query\Filter\SQLFilter;
42 use MailPoetVendor\Doctrine\ORM\Query\ResultSetMapping;
43 use MailPoetVendor\Doctrine\ORM\Repository\DefaultRepositoryFactory;
44 use MailPoetVendor\Doctrine\ORM\Repository\RepositoryFactory;
45 use MailPoetVendor\Doctrine\Persistence\Mapping\Driver\MappingDriver;
46 use MailPoetVendor\Doctrine\Persistence\ObjectRepository;
47 use MailPoetVendor\Doctrine\Persistence\Reflection\RuntimeReflectionProperty;
48 use LogicException;
49 use MailPoetVendor\Psr\Cache\CacheItemPoolInterface;
50 use MailPoetVendor\Symfony\Component\VarExporter\LazyGhostTrait;
51 use function class_exists;
52 use function is_a;
53 use function method_exists;
54 use function sprintf;
55 use function strtolower;
56 use function trait_exists;
57 use function trim;
58 class Configuration extends \MailPoetVendor\Doctrine\DBAL\Configuration
59 {
60 protected $_attributes = [];
61 private $identityGenerationPreferences = [];
62 public function setIdentityGenerationPreferences(array $value) : void
63 {
64 $this->identityGenerationPreferences = $value;
65 }
66 public function getIdentityGenerationPreferences() : array
67 {
68 return $this->identityGenerationPreferences;
69 }
70 public function setProxyDir($dir)
71 {
72 $this->_attributes['proxyDir'] = $dir;
73 }
74 public function getProxyDir()
75 {
76 return $this->_attributes['proxyDir'] ?? null;
77 }
78 public function getAutoGenerateProxyClasses()
79 {
80 return $this->_attributes['autoGenerateProxyClasses'] ?? ProxyFactory::AUTOGENERATE_ALWAYS;
81 }
82 public function setAutoGenerateProxyClasses($autoGenerate)
83 {
84 $this->_attributes['autoGenerateProxyClasses'] = (int) $autoGenerate;
85 }
86 public function getProxyNamespace()
87 {
88 return $this->_attributes['proxyNamespace'] ?? null;
89 }
90 public function setProxyNamespace($ns)
91 {
92 $this->_attributes['proxyNamespace'] = $ns;
93 }
94 public function setMetadataDriverImpl(MappingDriver $driverImpl)
95 {
96 $this->_attributes['metadataDriverImpl'] = $driverImpl;
97 }
98 public function newDefaultAnnotationDriver($paths = [], $useSimpleAnnotationReader = \true, bool $reportFieldsWhereDeclared = \false)
99 {
100 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9443', '%s is deprecated, call %s::createDefaultAnnotationDriver() instead.', __METHOD__, ORMSetup::class);
101 if (!class_exists(AnnotationReader::class)) {
102 throw new LogicException('The annotation metadata driver cannot be enabled because the "doctrine/annotations" library' . ' is not installed. Please run "composer require doctrine/annotations" or choose a different' . ' metadata driver.');
103 }
104 if ($useSimpleAnnotationReader) {
105 if (!class_exists(SimpleAnnotationReader::class)) {
106 throw new BadMethodCallException('SimpleAnnotationReader has been removed in doctrine/annotations 2.' . ' Downgrade to version 1 or set $useSimpleAnnotationReader to false.');
107 }
108 // Register the ORM Annotations in the AnnotationRegistry
109 $reader = new SimpleAnnotationReader();
110 $reader->addNamespace('MailPoetVendor\\Doctrine\\ORM\\Mapping');
111 } else {
112 $reader = new AnnotationReader();
113 }
114 if (class_exists(ArrayCache::class) && class_exists(CachedReader::class)) {
115 $reader = new CachedReader($reader, new ArrayCache());
116 }
117 return new AnnotationDriver($reader, (array) $paths, $reportFieldsWhereDeclared);
118 }
119 public function addEntityNamespace($alias, $namespace)
120 {
121 if (class_exists(PersistentObject::class)) {
122 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8818', 'Short namespace aliases such as "%s" are deprecated and will be removed in Doctrine ORM 3.0.', $alias);
123 } else {
124 throw NotSupported::createForPersistence3(sprintf('Using short namespace alias "%s" by calling %s', $alias, __METHOD__));
125 }
126 $this->_attributes['entityNamespaces'][$alias] = $namespace;
127 }
128 public function getEntityNamespace($entityNamespaceAlias)
129 {
130 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8818', 'Entity short namespace aliases such as "%s" are deprecated, use ::class constant instead.', $entityNamespaceAlias);
131 if (!isset($this->_attributes['entityNamespaces'][$entityNamespaceAlias])) {
132 // @phpstan-ignore staticMethod.deprecatedClass
133 throw UnknownEntityNamespace::fromNamespaceAlias($entityNamespaceAlias);
134 }
135 return trim($this->_attributes['entityNamespaces'][$entityNamespaceAlias], '\\');
136 }
137 public function setEntityNamespaces(array $entityNamespaces)
138 {
139 $this->_attributes['entityNamespaces'] = $entityNamespaces;
140 }
141 public function getEntityNamespaces()
142 {
143 return $this->_attributes['entityNamespaces'];
144 }
145 public function getMetadataDriverImpl()
146 {
147 return $this->_attributes['metadataDriverImpl'] ?? null;
148 }
149 public function getResultCache() : ?CacheItemPoolInterface
150 {
151 // Compatibility with DBAL 2
152 if (!method_exists(parent::class, 'getResultCache')) {
153 // @phpstan-ignore method.deprecated
154 $cacheImpl = $this->getResultCacheImpl();
155 return $cacheImpl ? CacheAdapter::wrap($cacheImpl) : null;
156 }
157 return parent::getResultCache();
158 }
159 public function setResultCache(CacheItemPoolInterface $cache) : void
160 {
161 // Compatibility with DBAL 2
162 if (!method_exists(parent::class, 'setResultCache')) {
163 // @phpstan-ignore method.deprecated
164 $this->setResultCacheImpl(DoctrineProvider::wrap($cache));
165 return;
166 }
167 parent::setResultCache($cache);
168 }
169 public function getQueryCacheImpl()
170 {
171 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9002', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use getQueryCache() instead.', __METHOD__);
172 return $this->_attributes['queryCacheImpl'] ?? null;
173 }
174 public function setQueryCacheImpl(CacheDriver $cacheImpl)
175 {
176 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9002', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use setQueryCache() instead.', __METHOD__);
177 $this->_attributes['queryCache'] = CacheAdapter::wrap($cacheImpl);
178 $this->_attributes['queryCacheImpl'] = $cacheImpl;
179 }
180 public function getQueryCache() : ?CacheItemPoolInterface
181 {
182 return $this->_attributes['queryCache'] ?? null;
183 }
184 public function setQueryCache(CacheItemPoolInterface $cache) : void
185 {
186 $this->_attributes['queryCache'] = $cache;
187 $this->_attributes['queryCacheImpl'] = DoctrineProvider::wrap($cache);
188 }
189 public function getHydrationCacheImpl()
190 {
191 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9002', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use getHydrationCache() instead.', __METHOD__);
192 return $this->_attributes['hydrationCacheImpl'] ?? null;
193 }
194 public function setHydrationCacheImpl(CacheDriver $cacheImpl)
195 {
196 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9002', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use setHydrationCache() instead.', __METHOD__);
197 $this->_attributes['hydrationCache'] = CacheAdapter::wrap($cacheImpl);
198 $this->_attributes['hydrationCacheImpl'] = $cacheImpl;
199 }
200 public function getHydrationCache() : ?CacheItemPoolInterface
201 {
202 return $this->_attributes['hydrationCache'] ?? null;
203 }
204 public function setHydrationCache(CacheItemPoolInterface $cache) : void
205 {
206 $this->_attributes['hydrationCache'] = $cache;
207 $this->_attributes['hydrationCacheImpl'] = DoctrineProvider::wrap($cache);
208 }
209 public function getMetadataCacheImpl()
210 {
211 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8650', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use getMetadataCache() instead.', __METHOD__);
212 if (isset($this->_attributes['metadataCacheImpl'])) {
213 return $this->_attributes['metadataCacheImpl'];
214 }
215 return isset($this->_attributes['metadataCache']) ? DoctrineProvider::wrap($this->_attributes['metadataCache']) : null;
216 }
217 public function setMetadataCacheImpl(CacheDriver $cacheImpl)
218 {
219 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/issues/8650', 'Method %s() is deprecated and will be removed in Doctrine ORM 3.0. Use setMetadataCache() instead.', __METHOD__);
220 $this->_attributes['metadataCacheImpl'] = $cacheImpl;
221 $this->_attributes['metadataCache'] = CacheAdapter::wrap($cacheImpl);
222 }
223 public function getMetadataCache() : ?CacheItemPoolInterface
224 {
225 return $this->_attributes['metadataCache'] ?? null;
226 }
227 public function setMetadataCache(CacheItemPoolInterface $cache) : void
228 {
229 $this->_attributes['metadataCache'] = $cache;
230 $this->_attributes['metadataCacheImpl'] = DoctrineProvider::wrap($cache);
231 }
232 public function addNamedQuery($name, $dql)
233 {
234 $this->_attributes['namedQueries'][$name] = $dql;
235 }
236 public function getNamedQuery($name)
237 {
238 if (!isset($this->_attributes['namedQueries'][$name])) {
239 throw NamedQueryNotFound::fromName($name);
240 }
241 return $this->_attributes['namedQueries'][$name];
242 }
243 public function addNamedNativeQuery($name, $sql, Query\ResultSetMapping $rsm)
244 {
245 $this->_attributes['namedNativeQueries'][$name] = [$sql, $rsm];
246 }
247 public function getNamedNativeQuery($name)
248 {
249 if (!isset($this->_attributes['namedNativeQueries'][$name])) {
250 throw NamedNativeQueryNotFound::fromName($name);
251 }
252 return $this->_attributes['namedNativeQueries'][$name];
253 }
254 public function ensureProductionSettings()
255 {
256 Deprecation::triggerIfCalledFromOutside('doctrine/orm', 'https://github.com/doctrine/orm/pull/9074', '%s is deprecated', __METHOD__);
257 $queryCacheImpl = $this->getQueryCacheImpl();
258 if (!$queryCacheImpl) {
259 throw QueryCacheNotConfigured::create();
260 }
261 if ($queryCacheImpl instanceof ArrayCache) {
262 throw QueryCacheUsesNonPersistentCache::fromDriver($queryCacheImpl);
263 }
264 if ($this->getAutoGenerateProxyClasses() !== ProxyFactory::AUTOGENERATE_NEVER) {
265 throw ProxyClassesAlwaysRegenerating::create();
266 }
267 if (!$this->getMetadataCache()) {
268 throw MetadataCacheNotConfigured::create();
269 }
270 $metadataCacheImpl = $this->getMetadataCacheImpl();
271 if ($metadataCacheImpl instanceof ArrayCache) {
272 throw MetadataCacheUsesNonPersistentCache::fromDriver($metadataCacheImpl);
273 }
274 }
275 public function addCustomStringFunction($name, $className)
276 {
277 $this->_attributes['customStringFunctions'][strtolower($name)] = $className;
278 }
279 public function getCustomStringFunction($name)
280 {
281 $name = strtolower($name);
282 return $this->_attributes['customStringFunctions'][$name] ?? null;
283 }
284 public function setCustomStringFunctions(array $functions)
285 {
286 foreach ($functions as $name => $className) {
287 $this->addCustomStringFunction($name, $className);
288 }
289 }
290 public function addCustomNumericFunction($name, $className)
291 {
292 $this->_attributes['customNumericFunctions'][strtolower($name)] = $className;
293 }
294 public function getCustomNumericFunction($name)
295 {
296 $name = strtolower($name);
297 return $this->_attributes['customNumericFunctions'][$name] ?? null;
298 }
299 public function setCustomNumericFunctions(array $functions)
300 {
301 foreach ($functions as $name => $className) {
302 $this->addCustomNumericFunction($name, $className);
303 }
304 }
305 public function addCustomDatetimeFunction($name, $className)
306 {
307 $this->_attributes['customDatetimeFunctions'][strtolower($name)] = $className;
308 }
309 public function getCustomDatetimeFunction($name)
310 {
311 $name = strtolower($name);
312 return $this->_attributes['customDatetimeFunctions'][$name] ?? null;
313 }
314 public function setCustomDatetimeFunctions(array $functions)
315 {
316 foreach ($functions as $name => $className) {
317 $this->addCustomDatetimeFunction($name, $className);
318 }
319 }
320 public function setTypedFieldMapper(?TypedFieldMapper $typedFieldMapper) : void
321 {
322 $this->_attributes['typedFieldMapper'] = $typedFieldMapper;
323 }
324 public function getTypedFieldMapper() : ?TypedFieldMapper
325 {
326 return $this->_attributes['typedFieldMapper'] ?? null;
327 }
328 public function setCustomHydrationModes($modes)
329 {
330 $this->_attributes['customHydrationModes'] = [];
331 foreach ($modes as $modeName => $hydrator) {
332 $this->addCustomHydrationMode($modeName, $hydrator);
333 }
334 }
335 public function getCustomHydrationMode($modeName)
336 {
337 return $this->_attributes['customHydrationModes'][$modeName] ?? null;
338 }
339 public function addCustomHydrationMode($modeName, $hydrator)
340 {
341 $this->_attributes['customHydrationModes'][$modeName] = $hydrator;
342 }
343 public function setClassMetadataFactoryName($cmfName)
344 {
345 $this->_attributes['classMetadataFactoryName'] = $cmfName;
346 }
347 public function getClassMetadataFactoryName()
348 {
349 if (!isset($this->_attributes['classMetadataFactoryName'])) {
350 $this->_attributes['classMetadataFactoryName'] = ClassMetadataFactory::class;
351 }
352 return $this->_attributes['classMetadataFactoryName'];
353 }
354 public function addFilter($name, $className)
355 {
356 $this->_attributes['filters'][$name] = $className;
357 }
358 public function getFilterClassName($name)
359 {
360 return $this->_attributes['filters'][$name] ?? null;
361 }
362 public function setDefaultRepositoryClassName($className)
363 {
364 if (!class_exists($className) || !is_a($className, ObjectRepository::class, \true)) {
365 throw InvalidEntityRepository::fromClassName($className);
366 }
367 if (!is_a($className, EntityRepository::class, \true)) {
368 Deprecation::trigger('doctrine/orm', 'https://github.com/doctrine/orm/pull/9533', 'Configuring %s as default repository class is deprecated because it does not extend %s.', $className, EntityRepository::class);
369 }
370 $this->_attributes['defaultRepositoryClassName'] = $className;
371 }
372 public function getDefaultRepositoryClassName()
373 {
374 return $this->_attributes['defaultRepositoryClassName'] ?? EntityRepository::class;
375 }
376 public function setNamingStrategy(NamingStrategy $namingStrategy)
377 {
378 $this->_attributes['namingStrategy'] = $namingStrategy;
379 }
380 public function getNamingStrategy()
381 {
382 if (!isset($this->_attributes['namingStrategy'])) {
383 $this->_attributes['namingStrategy'] = new DefaultNamingStrategy();
384 }
385 return $this->_attributes['namingStrategy'];
386 }
387 public function setQuoteStrategy(QuoteStrategy $quoteStrategy)
388 {
389 $this->_attributes['quoteStrategy'] = $quoteStrategy;
390 }
391 public function getQuoteStrategy()
392 {
393 if (!isset($this->_attributes['quoteStrategy'])) {
394 $this->_attributes['quoteStrategy'] = new DefaultQuoteStrategy();
395 }
396 return $this->_attributes['quoteStrategy'];
397 }
398 public function setEntityListenerResolver(EntityListenerResolver $resolver)
399 {
400 $this->_attributes['entityListenerResolver'] = $resolver;
401 }
402 public function getEntityListenerResolver()
403 {
404 if (!isset($this->_attributes['entityListenerResolver'])) {
405 $this->_attributes['entityListenerResolver'] = new DefaultEntityListenerResolver();
406 }
407 return $this->_attributes['entityListenerResolver'];
408 }
409 public function setRepositoryFactory(RepositoryFactory $repositoryFactory)
410 {
411 $this->_attributes['repositoryFactory'] = $repositoryFactory;
412 }
413 public function getRepositoryFactory()
414 {
415 return $this->_attributes['repositoryFactory'] ?? new DefaultRepositoryFactory();
416 }
417 public function isSecondLevelCacheEnabled()
418 {
419 return $this->_attributes['isSecondLevelCacheEnabled'] ?? \false;
420 }
421 public function setSecondLevelCacheEnabled($flag = \true)
422 {
423 $this->_attributes['isSecondLevelCacheEnabled'] = (bool) $flag;
424 }
425 public function setSecondLevelCacheConfiguration(CacheConfiguration $cacheConfig)
426 {
427 $this->_attributes['secondLevelCacheConfiguration'] = $cacheConfig;
428 }
429 public function getSecondLevelCacheConfiguration()
430 {
431 if (!isset($this->_attributes['secondLevelCacheConfiguration']) && $this->isSecondLevelCacheEnabled()) {
432 $this->_attributes['secondLevelCacheConfiguration'] = new CacheConfiguration();
433 }
434 return $this->_attributes['secondLevelCacheConfiguration'] ?? null;
435 }
436 public function getDefaultQueryHints()
437 {
438 return $this->_attributes['defaultQueryHints'] ?? [];
439 }
440 public function setDefaultQueryHints(array $defaultQueryHints)
441 {
442 $this->_attributes['defaultQueryHints'] = $defaultQueryHints;
443 }
444 public function getDefaultQueryHint($name)
445 {
446 return $this->_attributes['defaultQueryHints'][$name] ?? \false;
447 }
448 public function setDefaultQueryHint($name, $value)
449 {
450 $this->_attributes['defaultQueryHints'][$name] = $value;
451 }
452 public function getSchemaIgnoreClasses() : array
453 {
454 return $this->_attributes['schemaIgnoreClasses'] ?? [];
455 }
456 public function setSchemaIgnoreClasses(array $schemaIgnoreClasses) : void
457 {
458 $this->_attributes['schemaIgnoreClasses'] = $schemaIgnoreClasses;
459 }
460 public function isLazyGhostObjectEnabled() : bool
461 {
462 return $this->_attributes['isLazyGhostObjectEnabled'] ?? \false;
463 }
464 public function setLazyGhostObjectEnabled(bool $flag) : void
465 {
466 // @phpstan-ignore classConstant.deprecatedTrait (Because we support Symfony < 7.3)
467 if ($flag && !trait_exists(LazyGhostTrait::class)) {
468 throw new LogicException('Lazy ghost objects cannot be enabled because the "symfony/var-exporter" library' . ' version 6.2 or higher is not installed. Please run "composer require symfony/var-exporter:^6.2".');
469 }
470 if ($flag && !class_exists(RuntimeReflectionProperty::class)) {
471 throw new LogicException('Lazy ghost objects cannot be enabled because the "doctrine/persistence" library' . ' version 3.1 or higher is not installed. Please run "composer update doctrine/persistence".');
472 }
473 $this->_attributes['isLazyGhostObjectEnabled'] = $flag;
474 }
475 public function setRejectIdCollisionInIdentityMap(bool $flag) : void
476 {
477 $this->_attributes['rejectIdCollisionInIdentityMap'] = $flag;
478 }
479 public function isRejectIdCollisionInIdentityMapEnabled() : bool
480 {
481 return $this->_attributes['rejectIdCollisionInIdentityMap'] ?? \false;
482 }
483 public function setEagerFetchBatchSize(int $batchSize = 100) : void
484 {
485 $this->_attributes['fetchModeSubselectBatchSize'] = $batchSize;
486 }
487 public function getEagerFetchBatchSize() : int
488 {
489 return $this->_attributes['fetchModeSubselectBatchSize'] ?? 100;
490 }
491 }
492