Server IP : 104.21.14.103 / Your IP : 3.129.195.209 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/home/giankuin/thietke365.net/wp-content/plugins/mailpoet/lib/Doctrine/ |
Upload File : |
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Doctrine; if (!defined('ABSPATH')) exit; use MailPoet\Doctrine\Annotations\AnnotationReaderProvider; use MailPoetVendor\Doctrine\Common\Proxy\AbstractProxyFactory; use MailPoetVendor\Doctrine\ORM\Configuration; use MailPoetVendor\Doctrine\ORM\Mapping\Driver\AnnotationDriver; use MailPoetVendor\Doctrine\ORM\Mapping\UnderscoreNamingStrategy; class ConfigurationFactory { const ENTITY_DIR = __DIR__ . '/../Entities'; const METADATA_DIR = __DIR__ . '/../../generated/doctrine-metadata'; const PROXY_DIR = __DIR__ . '/../../generated/doctrine-proxies'; const PROXY_NAMESPACE = 'MailPoetDoctrineProxies'; /** @var bool */ private $isDevMode; /** @var AnnotationReaderProvider */ private $annotationReaderProvider; public function __construct( AnnotationReaderProvider $annotationReaderProvider, $isDevMode = null ) { $this->isDevMode = $isDevMode === null ? WP_DEBUG : $isDevMode; $this->annotationReaderProvider = $annotationReaderProvider; } public function createConfiguration() { $configuration = new Configuration(); $configuration->setNamingStrategy(new UnderscoreNamingStrategy(\CASE_LOWER, true)); $this->configureMetadata($configuration); $this->configureProxies($configuration); $this->configureCache($configuration); return $configuration; } private function configureMetadata(Configuration $configuration) { $configuration->setClassMetadataFactoryName(TablePrefixMetadataFactory::class); // annotation reader exists only in dev environment, on production cache is pre-generated $annotationReader = $this->annotationReaderProvider->getAnnotationReader(); $isReadOnly = !$annotationReader; $metadataStorage = new PSRMetadataCache(self::METADATA_DIR, $isReadOnly); $configuration->setMetadataCache($metadataStorage); if ($isReadOnly) { $configuration->setMetadataDriverImpl(new CacheOnlyMappingDriver($metadataStorage)); } else { $configuration->setMetadataDriverImpl(new AnnotationDriver($annotationReader, [self::ENTITY_DIR])); } } private function configureProxies(Configuration $configuration) { $configuration->setProxyDir(self::PROXY_DIR); $configuration->setProxyNamespace(self::PROXY_NAMESPACE); $configuration->setAutoGenerateProxyClasses( $this->isDevMode ? AbstractProxyFactory::AUTOGENERATE_FILE_NOT_EXISTS : AbstractProxyFactory::AUTOGENERATE_NEVER ); } private function configureCache(Configuration $configuration) { $cache = new ArrayCache(); $configuration->setQueryCacheImpl($cache); $configuration->setResultCacheImpl($cache); } }