PHP Класс Doctrine\DBAL\Connections\MasterSlaveConnection
Connection can be used with master-slave setups.
Important for the understanding of this connection should be how and when
it picks the slave or master.
1. Slave if master was never picked before and ONLY if 'getWrappedConnection'
or 'executeQuery' is used.
2. Master picked when 'exec', 'executeUpdate', 'insert', 'delete', 'update', 'createSavepoint',
'releaseSavepoint', 'beginTransaction', 'rollback', 'commit', 'query' or
'prepare' is called.
3. If master was picked once during the lifetime of the connection it will always get picked afterwards.
4. One slave connection is randomly picked ONCE during a request.
ATTENTION: You can write to the slave with this connection if you execute a write query without
opening up a transaction. For example:
$conn = DriverManager::getConnection(...);
$conn->executeQuery("DELETE FROM table");
Be aware that Connection#executeQuery is a method specifically for READ
operations only.
This connection is limited to slave operations using the
Connection#executeQuery operation only, because it wouldn't be compatible
with the ORM or SchemaManager code otherwise. Both use all the other
operations in a context where writes could happen to a slave, which makes
this restricted approach necessary.
You can manually connect to the master at any time by calling:
$conn->connect('master');
Instantiation through the DriverManager looks like:
Показать файл
Открыть проект
Примеры использования класса
Защищенные свойства (Protected)
Свойство |
Тип |
Описание |
|
$connections |
Doctrine\DBAL\Driver\Connection[] |
Master and slave connection (one of the randomly picked slaves). |
|
$keepSlave |
boolean |
You can keep the slave connection and then switch back to it
during the request if you know what you are doing. |
|
Открытые методы
Метод |
Описание |
|
__construct ( array $params, Doctrine\DBAL\Driver $driver, Doctrine\DBAL\Configuration $config = null, Doctrine\Common\EventManager $eventManager = null ) |
Creates Master Slave Connection. |
|
beginTransaction ( ) |
{@inheritDoc} |
|
close ( ) |
{@inheritDoc} |
|
commit ( ) |
{@inheritDoc} |
|
connect ( $connectionName = null ) |
{@inheritDoc} |
|
createSavepoint ( $savepoint ) |
{@inheritDoc} |
|
delete ( $tableName, array $identifier, array $types = [] ) |
{@inheritDoc} |
|
exec ( $statement ) |
{@inheritDoc} |
|
executeUpdate ( $query, array $params = [], array $types = [] ) |
{@inheritDoc} |
|
insert ( $tableName, array $data, array $types = [] ) |
{@inheritDoc} |
|
isConnectedToMaster ( ) : boolean |
Checks if the connection is currently towards the master or not. |
|
prepare ( $statement ) |
{@inheritDoc} |
|
query ( ) |
{@inheritDoc} |
|
releaseSavepoint ( $savepoint ) |
{@inheritDoc} |
|
rollBack ( ) |
{@inheritDoc} |
|
rollbackSavepoint ( $savepoint ) |
{@inheritDoc} |
|
update ( $tableName, array $data, array $identifier, array $types = [] ) |
{@inheritDoc} |
|
Защищенные методы
Описание методов
__construct()
публичный Метод
Creates Master Slave Connection.
public __construct ( array $params, Doctrine\DBAL\Driver $driver, Doctrine\DBAL\Configuration $config = null, Doctrine\Common\EventManager $eventManager = null ) |
$params |
array |
|
$driver |
Doctrine\DBAL\Driver |
|
$config |
Doctrine\DBAL\Configuration |
|
$eventManager |
Doctrine\Common\EventManager |
|
beginTransaction()
публичный Метод
chooseConnectionConfiguration()
защищенный Метод
connect()
публичный Метод
public connect ( $connectionName = null ) |
connectTo()
защищенный Метод
Connects to a specific connection.
protected connectTo ( string $connectionName ) : Doctrine\DBAL\Driver |
$connectionName |
string |
|
Результат |
Doctrine\DBAL\Driver |
|
createSavepoint()
публичный Метод
public exec ( $statement ) |
executeUpdate()
публичный Метод
isConnectedToMaster()
публичный Метод
Checks if the connection is currently towards the master or not.
prepare()
публичный Метод
releaseSavepoint()
публичный Метод
rollBack()
публичный Метод
rollbackSavepoint()
публичный Метод
Описание свойств
$connections защищенное свойство
Master and slave connection (one of the randomly picked slaves).
protected Connection[],Doctrine\DBAL\Driver $connections |
Результат |
Doctrine\DBAL\Driver\Connection[] |
|
$keepSlave защищенное свойство
You can keep the slave connection and then switch back to it
during the request if you know what you are doing.
protected bool $keepSlave |
Результат |
boolean |
|