Completed
Push — master ( aebdf5...2497c6 )
by Jeroen De
02:33 queued 11s
created

DatabaseIdGenerator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 25
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getNewId() 0 13 1
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace IdGenerator\PackagePrivate;
6
7
use IdGenerator\IdGenerator;
8
use Wikimedia\Rdbms\ILoadBalancer;
9
10
class DatabaseIdGenerator implements IdGenerator {
11
12
	private $loadBalancer;
13
	private $idDatabase;
14
15 3
	public function __construct( ILoadBalancer $loadBalancer, IdDatabase $idDatabase ) {
16 3
		$this->loadBalancer = $loadBalancer;
17 3
		$this->idDatabase = $idDatabase;
18 3
	}
19
20 3
	public function getNewId( string $type = '' ): int {
21 3
		$database = $this->loadBalancer->getConnection( DB_MASTER );
22
23 3
		$database->startAtomic( __METHOD__ );
24
25 3
		$id = $this->idDatabase->getNewId( $database, $type );
26
27 3
		$database->endAtomic( __METHOD__ );
28
29 3
		$this->loadBalancer->reuseConnection( $database );
30
31 3
		return $id;
32
	}
33
34
}
35