Alcaeus\MongoDbAdapter\Helper\ReadPreference::setReadPreferenceFromParameters PHP Method

setReadPreferenceFromParameters() protected method

protected setReadPreferenceFromParameters ( string $readPreference, array $tags = null ) : boolean
$readPreference string
$tags array
return boolean
    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;
    }