2017 © Pedro PelĂĄez
 

library dblinker

image

ezweb/dblinker

  • Tuesday, June 5, 2018
  • by mathroc
  • Repository
  • 8 Watchers
  • 1 Stars
  • 4,745 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 7 Forks
  • 0 Open issues
  • 21 Versions
  • 2 % Grown

The README.md

DB Linker

Database connection for master/slaves setup. This package provides drivers for DBAL. MasterSlavesDriver for auto switching between a master and slaves servers & RetryDriver for retrying query when some errors occurs., (*1)

Build Status Code Status Latest Version License, (*2)

Installation

run composer require ezweb/dblinker, (*3)

Configuration

Master/Slaves connection

A MysqlMasterSlavesConnection wraps a mysql master connection & one or more mysql slaves connection. It execute "READ" queries on one of the slaves connections and "WRITE" queries on the master connection., (*4)


// master and slaves configuration $master = [ 'driver' => 'mysqli', 'host' => $masterHostname, 'user' => $masterUsername, 'password' => $masterPassword, 'dbname' => $masterDb, ]; $slaves = [ [ 'driver' => 'mysqli', 'host' => $slave1Hostname, 'user' => $slave1Username, 'password' => $slave1Password, 'dbname' => $slave1Db, 'weight' => $slave1Weight, ], /** other slaves params **/ ]; // connection configuration $params = [ 'master' => $master, 'slaves' => $slaves, 'driverClass' => 'Ez\DbLinker\Driver\MysqlMasterSlavesDriver', ]; // Doctrine\DBAL\Configuration $connection = Doctrine\DBAL\DriverManager::getConnection($params); var_dump($connection->fetchColumn('SELECT 1')); // slave var_dump($connection->exec('INSERT INTO
')); // master

Retry connection

A MysqlRetryConnection wraps another mysql connection. Its goal is to transparently re-execute queries that provokes erros when it's possible to recover automatically., (*5)


// master and slaves configuration $params = [ 'connectionParams' => [ /** mysql master/slaves, mysqli or pdo_mysql parameters **/ ], 'driverClass' => 'Ez\DbLinker\Driver\MysqlRetryDriver', 'retryStrategy' => new Ez\DbLinker\RetryStrategy\MysqlRetryStrategy, ] // Doctrine\DBAL\Configuration $connection = Doctrine\DBAL\DriverManager::getConnection($params); var_dump($connection->fetchColumn('SELECT 1')); // nothing special var_dump($connection->exec('SET SESSION WAIT_TIMEOUT = 1')); sleep(2); var_dump($connection->fetchColumn('SELECT 1')); // Connection will catch "MySQL has gone away", re-execute the query and return the results as if nothing happened

Usage

When using Doctrine\DBAL\DriverManager, the $connection it returns is an instance of Doctrine\DBAL\Connection, that wraps one or more *Connection. Take a look at its documentation for more information., (*6)

Note: You can nest a MysqlMasterSlavesConnection in a MysqlRetryConnection., (*7)

Tests

To run the test suite, you need Docker & Docker-Compose:, (*8)

docker-compose run composer install
docker-compose run behat

The Versions

05/06 2018

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

05/06 2018

3.0.6

3.0.6.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

23/05 2018

3.0.5

3.0.5.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

07/02 2018

3.0.4

3.0.4.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

07/02 2018

3.0.3

3.0.3.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

06/02 2018

3.0.2

3.0.2.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

21/12 2017

3.0.1

3.0.1.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

14/12 2017

3.0.0

3.0.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

by Grégory Duchatelet

05/09 2017

2.0.0

2.0.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

03/11 2016

v1.5.0

1.5.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

06/09 2016

v1.4.3

1.4.3.0

  Sources   Download

MIT

The Requires

 

The Development Requires

27/01 2016

v1.4.2

1.4.2.0

  Sources   Download

MIT

The Requires

 

The Development Requires

15/12 2015

v1.4.1

1.4.1.0

  Sources   Download

MIT

The Requires

 

The Development Requires

02/12 2015

v1.4.0

1.4.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

25/11 2015
21/11 2015

v1.3.2

1.3.2.0

  Sources   Download

MIT

The Requires

 

The Development Requires

21/11 2015

v1.3.1

1.3.1.0

  Sources   Download

MIT

The Requires

 

The Development Requires

17/09 2015

v1.3.0

1.3.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

31/08 2015

v1.2.0

1.2.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

04/08 2015

v1.1.0

1.1.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires

28/05 2015

v1.0.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

The Development Requires