PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
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 / dbal / src / DriverManager.php
mailpoet / vendor-prefixed / doctrine / dbal / src Last commit date
ArrayParameters 2 years ago Cache 9 months ago Driver 9 months ago Event 2 years ago Exception 9 months ago Id 2 years ago Logging 2 years ago Platforms 9 months ago Portability 2 years ago Query 2 years ago SQL 9 months ago Schema 8 months ago Types 9 months ago ArrayParameterType.php 2 years ago ColumnCase.php 2 years ago Configuration.php 9 months ago Connection.php 9 months ago ConnectionException.php 2 years ago Driver.php 2 years ago DriverManager.php 2 years ago Events.php 2 years ago Exception.php 2 years ago ExpandArrayParameters.php 2 years ago FetchMode.php 2 years ago LockMode.php 2 years ago ParameterType.php 2 years ago Query.php 2 years ago Result.php 2 years ago Statement.php 2 years ago TransactionIsolationLevel.php 2 years ago VersionAwarePlatformDriver.php 2 years ago index.php 2 years ago
DriverManager.php
107 lines
1 <?php
2 namespace MailPoetVendor\Doctrine\DBAL;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Doctrine\Common\EventManager;
5 use MailPoetVendor\Doctrine\DBAL\Driver\IBMDB2;
6 use MailPoetVendor\Doctrine\DBAL\Driver\Mysqli;
7 use MailPoetVendor\Doctrine\DBAL\Driver\OCI8;
8 use MailPoetVendor\Doctrine\DBAL\Driver\PDO;
9 use MailPoetVendor\Doctrine\DBAL\Driver\PgSQL;
10 use MailPoetVendor\Doctrine\DBAL\Driver\SQLite3;
11 use MailPoetVendor\Doctrine\DBAL\Driver\SQLSrv;
12 use MailPoetVendor\Doctrine\DBAL\Exception\MalformedDsnException;
13 use MailPoetVendor\Doctrine\DBAL\Tools\DsnParser;
14 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
15 use MailPoetVendor\SensitiveParameter;
16 use function array_keys;
17 use function array_merge;
18 use function is_a;
19 final class DriverManager
20 {
21 private const DRIVER_MAP = ['pdo_mysql' => PDO\MySQL\Driver::class, 'pdo_sqlite' => PDO\SQLite\Driver::class, 'pdo_pgsql' => PDO\PgSQL\Driver::class, 'pdo_oci' => PDO\OCI\Driver::class, 'oci8' => OCI8\Driver::class, 'ibm_db2' => IBMDB2\Driver::class, 'pdo_sqlsrv' => PDO\SQLSrv\Driver::class, 'mysqli' => Mysqli\Driver::class, 'pgsql' => PgSQL\Driver::class, 'sqlsrv' => SQLSrv\Driver::class, 'sqlite3' => SQLite3\Driver::class];
22 private static array $driverSchemeAliases = [
23 'db2' => 'ibm_db2',
24 'mssql' => 'pdo_sqlsrv',
25 'mysql' => 'pdo_mysql',
26 'mysql2' => 'pdo_mysql',
27 // Amazon RDS, for some weird reason
28 'postgres' => 'pdo_pgsql',
29 'postgresql' => 'pdo_pgsql',
30 'pgsql' => 'pdo_pgsql',
31 'sqlite' => 'pdo_sqlite',
32 'sqlite3' => 'pdo_sqlite',
33 ];
34 private function __construct()
35 {
36 }
37 public static function getConnection( array $params, ?Configuration $config = null, ?EventManager $eventManager = null) : Connection
38 {
39 // create default config and event manager, if not set
40 $config ??= new Configuration();
41 $eventManager ??= new EventManager();
42 $params = self::parseDatabaseUrl($params);
43 // URL support for PrimaryReplicaConnection
44 if (isset($params['primary'])) {
45 $params['primary'] = self::parseDatabaseUrl($params['primary']);
46 }
47 if (isset($params['replica'])) {
48 foreach ($params['replica'] as $key => $replicaParams) {
49 $params['replica'][$key] = self::parseDatabaseUrl($replicaParams);
50 }
51 }
52 $driver = self::createDriver($params['driver'] ?? null, $params['driverClass'] ?? null);
53 foreach ($config->getMiddlewares() as $middleware) {
54 $driver = $middleware->wrap($driver);
55 }
56 $wrapperClass = $params['wrapperClass'] ?? Connection::class;
57 if (!is_a($wrapperClass, Connection::class, \true)) {
58 throw Exception::invalidWrapperClass($wrapperClass);
59 }
60 return new $wrapperClass($params, $driver, $config, $eventManager);
61 }
62 public static function getAvailableDrivers() : array
63 {
64 return array_keys(self::DRIVER_MAP);
65 }
66 private static function createDriver(?string $driver, ?string $driverClass) : Driver
67 {
68 if ($driverClass === null) {
69 if ($driver === null) {
70 throw Exception::driverRequired();
71 }
72 if (!isset(self::DRIVER_MAP[$driver])) {
73 throw Exception::unknownDriver($driver, array_keys(self::DRIVER_MAP));
74 }
75 $driverClass = self::DRIVER_MAP[$driver];
76 } elseif (!is_a($driverClass, Driver::class, \true)) {
77 throw Exception::invalidDriverClass($driverClass);
78 }
79 return new $driverClass();
80 }
81 private static function parseDatabaseUrl( array $params) : array
82 {
83 if (!isset($params['url'])) {
84 return $params;
85 }
86 Deprecation::trigger('doctrine/dbal', 'https://github.com/doctrine/dbal/pull/5843', 'The "url" connection parameter is deprecated. Please use %s to parse a database url before calling %s.', DsnParser::class, self::class);
87 $parser = new DsnParser(self::$driverSchemeAliases);
88 try {
89 $parsedParams = $parser->parse($params['url']);
90 } catch (MalformedDsnException $e) {
91 throw new Exception('Malformed parameter "url".', 0, $e);
92 }
93 if (isset($parsedParams['driver'])) {
94 // The requested driver from the URL scheme takes precedence
95 // over the default custom driver from the connection parameters (if any).
96 unset($params['driverClass']);
97 }
98 $params = array_merge($params, $parsedParams);
99 // If a schemeless connection URL is given, we require a default driver or default custom driver
100 // as connection parameter.
101 if (!isset($params['driverClass']) && !isset($params['driver'])) {
102 throw Exception::driverRequired($params['url']);
103 }
104 return $params;
105 }
106 }
107