protected function setReadPreferenceFromParameters($readPreference, $tags = null)
{
// @internal Passing an array for $readPreference is necessary to avoid conversion voodoo
// It should not be used externally!
if (is_array($readPreference)) {
return $this->setReadPreferenceFromArray($readPreference);
}
switch ($readPreference) {
case \MongoClient::RP_PRIMARY:
$mode = \MongoDB\Driver\ReadPreference::RP_PRIMARY;
break;
case \MongoClient::RP_PRIMARY_PREFERRED:
$mode = \MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED;
break;
case \MongoClient::RP_SECONDARY:
$mode = \MongoDB\Driver\ReadPreference::RP_SECONDARY;
break;
case \MongoClient::RP_SECONDARY_PREFERRED:
$mode = \MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED;
break;
case \MongoClient::RP_NEAREST:
$mode = \MongoDB\Driver\ReadPreference::RP_NEAREST;
break;
default:
trigger_error("The value '{$readPreference}' is not valid as read preference type", E_WARNING);
return false;
}
if ($readPreference == \MongoClient::RP_PRIMARY && count($tags)) {
trigger_error("You can't use read preference tags with a read preference of PRIMARY", E_WARNING);
return false;
}
$this->readPreference = new \MongoDB\Driver\ReadPreference($mode, $tags);
return true;
}