Skip to content

Commit 99a82b8

Browse files
authored
Refactoring bulk writes (#4)
* Refactoring bulk writes * Update composer.json, delete BulkWriteResolver
1 parent 68f7bc5 commit 99a82b8

18 files changed

+27
-193
lines changed

src/BulkCompiler.php

-99
This file was deleted.

src/Client.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ class Client
1414
use ResolveReadWriteOptionsTrait;
1515

1616
/**
17-
* @var ManagerInterface
17+
* @var Manager
1818
*/
1919
private $manager;
2020

2121
/**
22-
* @param ManagerInterface $manager
22+
* @param Manager $manager
2323
* @param array $options
2424
*/
25-
public function __construct(ManagerInterface $manager, array $options = [])
25+
public function __construct(Manager $manager, array $options = [])
2626
{
2727
$this->manager = $manager;
2828
$this->resolveReadWriteOptions($options);

src/Collection.php

+5-7
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
use Tequila\MongoDB\Write\Model\ReplaceOne;
2323
use Tequila\MongoDB\Write\Model\UpdateMany;
2424
use Tequila\MongoDB\Write\Model\UpdateOne;
25-
use Tequila\MongoDB\Write\Model\WriteModelInterface;
2625
use Tequila\MongoDB\Write\Result\DeleteResult;
2726
use Tequila\MongoDB\Write\Result\InsertManyResult;
2827
use Tequila\MongoDB\Write\Result\InsertOneResult;
@@ -35,7 +34,7 @@ class Collection
3534
use ResolveReadWriteOptionsTrait;
3635

3736
/**
38-
* @var ManagerInterface
37+
* @var Manager
3938
*/
4039
private $manager;
4140

@@ -50,12 +49,12 @@ class Collection
5049
private $collectionName;
5150

5251
/**
53-
* @param ManagerInterface $manager
52+
* @param Manager $manager
5453
* @param string $databaseName
5554
* @param string $collectionName
5655
* @param array $options
5756
*/
58-
public function __construct(ManagerInterface $manager, $databaseName, $collectionName, array $options = [])
57+
public function __construct(Manager $manager, $databaseName, $collectionName, array $options = [])
5958
{
6059
$this->manager = $manager;
6160
$this->databaseName = $databaseName;
@@ -110,10 +109,9 @@ public function bulkWrite(array $requests, array $options = [])
110109
$writeConcern = $this->writeConcern;
111110
}
112111

113-
$compiler = new BulkCompiler($options);
114-
$compiler->add($requests);
112+
$bulkWrite = new BulkWrite($requests);
115113

116-
return $this->manager->executeBulkWrite($this->getNamespace(), $compiler, $writeConcern);
114+
return $this->manager->executeBulkWrite($this->getNamespace(), $bulkWrite, $writeConcern);
117115
}
118116

119117
/**

src/CommandExecutor.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public function __construct(ReadConcern $readConcern, ReadPreference $readPrefer
6969
/**
7070
* @inheritdoc
7171
*/
72-
public function executeCommand(ManagerInterface $manager, $databaseName, array $command, array $options)
72+
public function executeCommand(Manager $manager, $databaseName, array $command, array $options)
7373
{
7474
if (empty($command)) {
7575
throw new InvalidArgumentException('$command cannot be empty.');

src/Database.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Database
1515
use ResolveReadWriteOptionsTrait;
1616

1717
/**
18-
* @var ManagerInterface
18+
* @var Manager
1919
*/
2020
private $manager;
2121

@@ -25,11 +25,11 @@ class Database
2525
private $databaseName;
2626

2727
/**
28-
* @param ManagerInterface $manager
28+
* @param Manager $manager
2929
* @param string $databaseName
3030
* @param array $options
3131
*/
32-
public function __construct(ManagerInterface $manager, $databaseName, array $options = [])
32+
public function __construct(Manager $manager, $databaseName, array $options = [])
3333
{
3434
$this->manager = $manager;
3535
$this->databaseName = $databaseName;

src/OptionsResolver/BulkWrite/BulkWriteResolver.php

-20
This file was deleted.

src/Write/Model/Delete.php

+2-7
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@
44

55
use Tequila\MongoDB\BulkWrite;
66
use Tequila\MongoDB\OptionsResolver\BulkWrite\DeleteResolver;
7-
use Tequila\MongoDB\Server;
8-
use Tequila\MongoDB\Write\Model\Traits\CheckCompatibilityTrait;
7+
use Tequila\MongoDB\WriteModelInterface;
98

109
class Delete implements WriteModelInterface
1110
{
12-
use CheckCompatibilityTrait;
13-
1411
/**
1512
* @var array
1613
*/
@@ -34,10 +31,8 @@ public function __construct(array $filter, array $options = [])
3431
/**
3532
* @inheritdoc
3633
*/
37-
public function writeToBulk(BulkWrite $bulk, Server $server)
34+
public function writeToBulk(BulkWrite $bulk)
3835
{
39-
$this->checkCompatibility($this->options, $server);
40-
4136
$bulk->delete($this->filter, $this->options);
4237
}
4338

src/Write/Model/DeleteMany.php

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Tequila\MongoDB\Write\Model;
44

55
use Tequila\MongoDB\Write\Model\Traits\BulkDeleteTrait;
6+
use Tequila\MongoDB\WriteModelInterface;
67

78
class DeleteMany implements WriteModelInterface
89
{

src/Write/Model/DeleteOne.php

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace Tequila\MongoDB\Write\Model;
44

55
use Tequila\MongoDB\Write\Model\Traits\BulkDeleteTrait;
6+
use Tequila\MongoDB\WriteModelInterface;
67

78
class DeleteOne implements WriteModelInterface
89
{

src/Write/Model/InsertOne.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
use Tequila\MongoDB\BulkWrite;
66
use Tequila\MongoDB\Exception\InvalidArgumentException;
7-
use Tequila\MongoDB\Server;
7+
use Tequila\MongoDB\WriteModelInterface;
88
use function Tequila\MongoDB\ensureValidDocument;
99
use function Tequila\MongoDB\getType;
1010

@@ -40,7 +40,7 @@ public function __construct($document)
4040
$this->document = $document;
4141
}
4242

43-
public function writeToBulk(BulkWrite $bulk, Server $server)
43+
public function writeToBulk(BulkWrite $bulk)
4444
{
4545
$bulk->insert($this->document);
4646
}

src/Write/Model/ReplaceOne.php

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Tequila\MongoDB\Write\Model\Traits\BulkUpdateTrait;
77
use function Tequila\MongoDB\ensureValidDocument;
88
use function Tequila\MongoDB\getType;
9+
use Tequila\MongoDB\WriteModelInterface;
910

1011
class ReplaceOne implements WriteModelInterface
1112
{

src/Write/Model/Traits/BulkDeleteTrait.php

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Tequila\MongoDB\Write\Model\Traits;
44

55
use Tequila\MongoDB\BulkWrite;
6-
use Tequila\MongoDB\Server;
76
use Tequila\MongoDB\Write\Model\Delete;
87

98
trait BulkDeleteTrait
@@ -17,10 +16,9 @@ trait BulkDeleteTrait
1716
* @see \Tequila\MongoDB\Write\Model\WriteModelInterface::writeToBulk()
1817
*
1918
* @param BulkWrite $bulk
20-
* @param Server $server
2119
*/
22-
public function writeToBulk(BulkWrite $bulk, Server $server)
20+
public function writeToBulk(BulkWrite $bulk)
2321
{
24-
$this->delete->writeToBulk($bulk, $server);
22+
$this->delete->writeToBulk($bulk);
2523
}
2624
}

src/Write/Model/Traits/BulkUpdateTrait.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Tequila\MongoDB\Write\Model\Traits;
44

55
use Tequila\MongoDB\BulkWrite;
6-
use Tequila\MongoDB\Server;
76
use Tequila\MongoDB\Write\Model\Update;
87

98
trait BulkUpdateTrait
@@ -16,8 +15,8 @@ trait BulkUpdateTrait
1615
/**
1716
* @inheritdoc
1817
*/
19-
public function writeToBulk(BulkWrite $bulk, Server $server)
18+
public function writeToBulk(BulkWrite $bulk)
2019
{
21-
$this->update->writeToBulk($bulk, $server);
20+
$this->update->writeToBulk($bulk);
2221
}
2322
}

src/Write/Model/Traits/CheckCompatibilityTrait.php

-19
This file was deleted.

src/Write/Model/Update.php

+2-8
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@
44

55
use Tequila\MongoDB\BulkWrite;
66
use Tequila\MongoDB\OptionsResolver\BulkWrite\UpdateResolver;
7-
use Tequila\MongoDB\OptionsResolver\OptionsResolver;
8-
use Tequila\MongoDB\Server;
9-
use Tequila\MongoDB\Write\Model\Traits\CheckCompatibilityTrait;
7+
use Tequila\MongoDB\WriteModelInterface;
108

119
class Update implements WriteModelInterface
1210
{
13-
use CheckCompatibilityTrait;
14-
1511
/**
1612
* @var array
1713
*/
@@ -42,10 +38,8 @@ public function __construct(array $filter, array $update, array $options = [])
4238
/**
4339
* @inheritdoc
4440
*/
45-
public function writeToBulk(BulkWrite $bulk, Server $server)
41+
public function writeToBulk(BulkWrite $bulk)
4642
{
47-
$this->checkCompatibility($this->options, $server);
48-
4943
$bulk->update($this->filter, $this->update, $this->options);
5044
}
5145
}

src/Write/Model/UpdateMany.php

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Tequila\MongoDB\OptionsResolver\BulkWrite\UpdateDocumentResolver;
66
use Tequila\MongoDB\Write\Model\Traits\BulkUpdateTrait;
7+
use Tequila\MongoDB\WriteModelInterface;
78

89
class UpdateMany implements WriteModelInterface
910
{

src/Write/Model/UpdateOne.php

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Tequila\MongoDB\OptionsResolver\BulkWrite\UpdateDocumentResolver;
66
use Tequila\MongoDB\Write\Model\Traits\BulkUpdateTrait;
7+
use Tequila\MongoDB\WriteModelInterface;
78

89
class UpdateOne implements WriteModelInterface
910
{

0 commit comments

Comments
 (0)