<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Doctrine; if (!defined('ABSPATH')) exit; use MailPoet\Doctrine\Middlewares\PostConnectMiddleware; use MailPoet\Doctrine\Types\BigIntType; use MailPoet\Doctrine\Types\DateTimeTzToStringType; use MailPoet\Doctrine\Types\JsonOrSerializedType; use MailPoet\Doctrine\Types\JsonType; use MailPoet\Doctrine\Types\SerializedArrayType; use MailPoet\Doctrine\WPDB\Driver as WPDBDriver; use MailPoetVendor\Doctrine\DBAL\Configuration; use MailPoetVendor\Doctrine\DBAL\Driver; use MailPoetVendor\Doctrine\DBAL\Driver\Middleware; use MailPoetVendor\Doctrine\DBAL\DriverManager; use MailPoetVendor\Doctrine\DBAL\Types\Type; class ConnectionFactory { const DRIVER_CLASS = WPDBDriver::class; private $types = [ BigIntType::NAME => BigIntType::class, DateTimeTzToStringType::NAME => DateTimeTzToStringType::class, JsonType::NAME => JsonType::class, JsonOrSerializedType::NAME => JsonOrSerializedType::class, SerializedArrayType::NAME => SerializedArrayType::class, ]; public function createConnection() { $this->setupTypes(); return DriverManager::getConnection( [ 'driverClass' => self::DRIVER_CLASS, ], $this->getConfiguration() ); } private function setupTypes() { foreach ($this->types as $name => $class) { if (Type::hasType($name)) { Type::overrideType($name, $class); } else { Type::addType($name, $class); } } } private function getConfiguration(): Configuration { $config = new Configuration(); $driverMiddleware = new class implements Middleware { public function wrap(Driver $driver): Driver { return new PostConnectMiddleware($driver); } }; $config->setMiddlewares([$driverMiddleware]); return $config; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Annotations | Folder | 0755 |
|
|
EntityTraits | Folder | 0755 |
|
|
EventListeners | Folder | 0755 |
|
|
Middlewares | Folder | 0755 |
|
|
Types | Folder | 0755 |
|
|
Validator | Folder | 0755 |
|
|
WPDB | Folder | 0755 |
|
|
ArrayCache.php | File | 2.01 KB | 0644 |
|
CacheOnlyMappingDriver.php | File | 1.67 KB | 0644 |
|
ConfigurationFactory.php | File | 2.7 KB | 0644 |
|
ConnectionFactory.php | File | 1.84 KB | 0644 |
|
EntityManagerFactory.php | File | 3.94 KB | 0644 |
|
MetadataCache.php | File | 2.69 KB | 0644 |
|
PSRArrayCache.php | File | 1.76 KB | 0644 |
|
PSRCacheInvalidArgumentException.php | File | 319 B | 0644 |
|
PSRCacheItem.php | File | 1.09 KB | 0644 |
|
PSRMetadataCache.php | File | 2.34 KB | 0644 |
|
ProxyClassNameResolver.php | File | 1.11 KB | 0644 |
|
Repository.php | File | 4.46 KB | 0644 |
|
TablePrefixMetadataFactory.php | File | 3.23 KB | 0644 |
|
index.php | File | 6 B | 0644 |
|