/**
* Connects to our database
*/
public function connect()
{
// We don't need to throw useless exceptions here, the MongoDB PHP Driver has its own checks and error reporting
// Yii will easily and effortlessly display the errors from the PHP driver, we should only catch its exceptions if
// we wanna add our own custom messages on top which we don't, the errors are quite self explanatory
if (version_compare(phpversion('mongo'), '1.3.0', '<')) {
$this->_mongo = new Mongo($this->server, $this->options);
$this->_mongo->connect();
if ($this->setSlaveOkay) {
$this->_mongo->setSlaveOkay($this->setSlaveOkay);
}
} else {
$this->_mongo = new MongoClient($this->server, $this->options);
if (is_array($this->RP)) {
$const = $this->RP[0];
$opts = $this->RP[1];
if (!empty($opts)) {
// I do this due to a bug that exists in some PHP driver versions
$this->_mongo->setReadPreference(constant('MongoClient::' . $const), $opts);
} else {
$this->_mongo->setReadPreference(constant('MongoClient::' . $const));
}
}
}
}