mirror of
https://github.com/zoe-may/TDoG-Skin.git
synced 2024-11-24 22:02:22 +08:00
102 lines
2.7 KiB
PHP
102 lines
2.7 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Doctrine\DBAL\Connections;
|
||
|
|
||
|
use Doctrine\Common\EventManager;
|
||
|
use Doctrine\DBAL\Configuration;
|
||
|
use Doctrine\DBAL\Driver;
|
||
|
use Doctrine\DBAL\DriverManager;
|
||
|
use Doctrine\Deprecations\Deprecation;
|
||
|
use InvalidArgumentException;
|
||
|
|
||
|
/**
|
||
|
* @deprecated Use PrimaryReadReplicaConnection instead
|
||
|
*
|
||
|
* @psalm-import-type Params from DriverManager
|
||
|
*/
|
||
|
class MasterSlaveConnection extends PrimaryReadReplicaConnection
|
||
|
{
|
||
|
/**
|
||
|
* Creates Primary Replica Connection.
|
||
|
*
|
||
|
* @internal The connection can be only instantiated by the driver manager.
|
||
|
*
|
||
|
* @param array<string,mixed> $params
|
||
|
* @psalm-param Params $params
|
||
|
* @phpstan-param array<string,mixed> $params
|
||
|
*
|
||
|
* @throws InvalidArgumentException
|
||
|
*/
|
||
|
public function __construct(
|
||
|
array $params,
|
||
|
Driver $driver,
|
||
|
?Configuration $config = null,
|
||
|
?EventManager $eventManager = null
|
||
|
) {
|
||
|
$this->deprecated(self::class, PrimaryReadReplicaConnection::class);
|
||
|
|
||
|
if (isset($params['master'])) {
|
||
|
$this->deprecated('Params key "master"', '"primary"');
|
||
|
|
||
|
$params['primary'] = $params['master'];
|
||
|
}
|
||
|
|
||
|
if (isset($params['slaves'])) {
|
||
|
$this->deprecated('Params key "slaves"', '"replica"');
|
||
|
|
||
|
$params['replica'] = $params['slaves'];
|
||
|
}
|
||
|
|
||
|
if (isset($params['keepSlave'])) {
|
||
|
$this->deprecated('Params key "keepSlave"', '"keepReplica"');
|
||
|
|
||
|
$params['keepReplica'] = $params['keepSlave'];
|
||
|
}
|
||
|
|
||
|
parent::__construct($params, $driver, $config, $eventManager);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Checks if the connection is currently towards the primary or not.
|
||
|
*/
|
||
|
public function isConnectedToMaster(): bool
|
||
|
{
|
||
|
$this->deprecated('isConnectedtoMaster()', 'isConnectedToPrimary()');
|
||
|
|
||
|
return $this->isConnectedToPrimary();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param string|null $connectionName
|
||
|
*
|
||
|
* @return bool
|
||
|
*/
|
||
|
public function connect($connectionName = null)
|
||
|
{
|
||
|
if ($connectionName === 'master') {
|
||
|
$connectionName = 'primary';
|
||
|
|
||
|
$this->deprecated('connect("master")', 'ensureConnectedToPrimary()');
|
||
|
}
|
||
|
|
||
|
if ($connectionName === 'slave') {
|
||
|
$connectionName = 'replica';
|
||
|
|
||
|
$this->deprecated('connect("slave")', 'ensureConnectedToReplica()');
|
||
|
}
|
||
|
|
||
|
return $this->performConnect($connectionName);
|
||
|
}
|
||
|
|
||
|
private function deprecated(string $thing, string $instead): void
|
||
|
{
|
||
|
Deprecation::trigger(
|
||
|
'doctrine/dbal',
|
||
|
'https://github.com/doctrine/dbal/pull/4054',
|
||
|
'%s is deprecated since doctrine/dbal 2.11 and will be removed in 3.0, use %s instead.',
|
||
|
$thing,
|
||
|
$instead
|
||
|
);
|
||
|
}
|
||
|
}
|