Completed
Pull Request — master (#8)
by Alessandro
02:36
created

Client::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
cc 1
eloc 3
nc 1
nop 4
crap 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Facile\MongoDbBundle\Capsule;
6
7
use Facile\MongoDbBundle\Services\Loggers\DataCollectorLoggerInterface;
8
use MongoDB\Client as MongoClient;
9
10
/**
11
 * Class Client.
12
 */
13
final class Client extends MongoClient
14
{
15
    /** @var DataCollectorLoggerInterface */
16
    private $logger;
17
18
    /**
19
     * Client constructor.
20
     *
21
     * @param string                       $uri
22
     * @param array                        $uriOptions
23
     * @param array                        $driverOptions
24
     * @param DataCollectorLoggerInterface $logger
25
     */
26 3
    public function __construct($uri = 'mongodb://localhost:27017', array $uriOptions = [], array $driverOptions = [], DataCollectorLoggerInterface $logger)
27
    {
28 3
        parent::__construct($uri, $uriOptions, $driverOptions);
29 3
        $this->logger = $logger;
30 3
    }
31
    /**
32
     * {@inheritdoc}
33
     */
34 3
    public function selectDatabase($databaseName, array $options = [])
35
    {
36 3
        $debug = $this->__debugInfo();
37
        $options += [
38 3
            'typeMap' => $debug['typeMap'],
39
        ];
40
41 3
        return new Database($debug['manager'], $databaseName, $options, $this->logger);
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47 1
    public function selectCollection($databaseName, $collectionName, array $options = [])
48
    {
49 1
        $debug = $this->__debugInfo();
50
        $options += [
51 1
            'typeMap' => $debug['typeMap'],
52
        ];
53
54 1
        return new Collection($debug['manager'], $databaseName, $collectionName, $options, $this->logger);
55
    }
56
}
57