Completed
Branch master (a2888f)
by Joao
08:30 queued 04:22
created

src/Repository/NoSqlDataset.php (3 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace ByJG\AnyDataset\Repository;
4
5
use ByJG\AnyDataset\ConnectionManagement;
6
use ByJG\AnyDataset\Database\MongoDBDriver;
7
use ByJG\AnyDataset\Database\NoSQLDriverInterface;
8
use ByJG\AnyDataset\Exception\NotImplementedException;
9
use InvalidArgumentException;
10
11
class NoSqlDataset implements NoSQLDriverInterface
12
{
13
14
    /**
15
     * Enter description here...
16
     *
17
     * @var ConnectionManagement
18
     */
19
    private $_connectionManagement;
20
21
    /**
22
     *
23
     * @var NoSQLDriverInterface
24
     */
25
    private $_dbDriver = null;
26
27
    /**
28
     *
29
     * @param string $dbname
30
     * @param string $collection
31
     * @throws InvalidArgumentException
32
     */
33
    public function __construct($dbname, $collection)
34
    {
35
        $this->_connectionManagement = new ConnectionManagement($dbname);
36
37
        if ($this->_connectionManagement->getDriver() == "mongodb") {
38
            $this->_dbDriver = new MongoDBDriver($this->_connectionManagement, $collection);
39
        } else {
40
            throw new InvalidArgumentException("There is no '{$this->_connectionManagement->getDriver()}' NoSQL database");
41
        }
42
    }
43
44
    /**
45
     * @return ConnectionManagement
46
     */
47
    public function getConnectionManagement()
48
    {
49
        return $this->_connectionManagement;
50
    }
51
52
    /**
53
     * @return MongoDBDriver|NoSQLDriverInterface
54
     */
55
    public function getDbDriver()
56
    {
57
        return $this->_dbDriver;
58
    }
59
60
    public function testConnection()
61
    {
62
        return true;
63
    }
64
65
    /**
66
     *
67
     * @return mixed
68
     */
69
    public function getCollection()
70
    {
71
        return $this->getDbDriver()->getCollection();
72
    }
73
74
    /**
75
     *
76
     * @param mixed $filter
77
     * @param null $fields
78
     * @return IteratorInterface $filter
79
     */
80
    public function getIterator($filter = null, $fields = null)
81
    {
82
        return $this->getDbDriver()->getIterator($filter, $fields);
83
    }
84
85
    /**
86
     *
87
     * @param void $document
88
     */
89
    public function insert($document)
90
    {
91
        $this->getDbDriver()->insert($document);
92
    }
93
94
    /**
95
     *
96
     * @param mixed $collection
97
     * @return bool
98
     */
99
    public function setCollection($collection)
100
    {
101
        return $this->getDbDriver()->setCollection($collection);
102
    }
103
104
    /**
105
     *
106
     * @param mixed $document
107
     * @param mixed $filter
108
     * @param mixed $options
109
     * @return bool
110
     */
111
    public function update($document, $filter = null, $options = null)
112
    {
113
        return $this->getDbDriver()->update($document, $filter, $options);
114
    }
115
116
    /**
117
     * @access public
118
     * @return string
119
     */
120
    public function getDBConnection()
121
    {
122
        return $this->getDbDriver()->getDbConnection();
123
    }
124
125
    /**
126
     * @param $name
127
     * @param $value
128
     * @throws NotImplementedException
129
     */
130
    public function setDriverAttribute($name, $value)
0 ignored issues
show
The parameter $name is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
The parameter $value is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
131
    {
132
        throw new NotImplementedException('Method not implemented');
133
    }
134
135
    /**
136
     * @param $name
137
     * @throws NotImplementedException
138
     */
139
    public function getDriverAttribute($name)
0 ignored issues
show
The parameter $name is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
140
    {
141
        throw new NotImplementedException('Method not implemented');
142
    }
143
}
144