# Класс MongoDB\Driver\ServerApi

(mongodb >=1.10.0)

## Введение

## Обзор класса

final class MongoDB\Driver\ServerApi implements MongoDB\BSON\Serializable, Serializable {
/* Константы */
const string MongoDB\Driver\ServerAPI::V1 = "1";
/* Методы */
final public function bsonSerialize(): stdClass
final public function __construct(string `$version`, ?bool `$strict` = `null`, ?bool `$deprecationErrors` = `null`)
}

## Предопределённые константы

`MongoDB\Driver\ServerApi::V1`
  Server API версия 1.

## Примеры

Пример #1 Пример объявления версии API в диспетчере

    <?php

    use MongoDB\Driver\Manager;
    use MongoDB\Driver\ServerApi;

    $v1 = new ServerApi(ServerApi::v1);
    $manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

    $command = new MongoDB\Driver\Command(['buildInfo' => 1]);

    try {
        $cursor = $manager->executeCommand('admin', $command);
    } catch(MongoDB\Driver\Exception $e) {
        echo $e->getMessage(), "\n";
        exit;
    }

    /* Команда buildInfo возвращает единственный документ результата, поэтому нам нужно получить доступ
     * к первому результату в курсоре. */
    $buildInfo = $cursor->toArray()[0];

    echo $buildInfo->version, "\n";

    ?>

Результат выполнения приведённого примера:

    4.9.0-alpha7-49-gb968ca0

Пример #2 Пример объявления строгой версии API для менеджера

В следующем примере устанавливается флаг `strict`, который сообщает серверу отклонить любую команду, которая — не часть объявленной версии API. Это приводит к ошибке при выполнении команды buildInfo.

    <?php

    use MongoDB\Driver\Manager;
    use MongoDB\Driver\ServerApi;

    $v1 = new ServerApi(ServerApi::v1, true);
    $manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

    $command = new MongoDB\Driver\Command(['buildInfo' => 1]);

    try {
        $cursor = $manager->executeCommand('admin', $command);
    } catch(MongoDB\Driver\Exception $e) {
        echo $e->getMessage(), "\n";
        exit;
    }

    /* Команда buildInfo возвращает единственный документ результата, поэтому нам нужно получить доступ
     * к первому результату в курсоре. */
    $buildInfo = $cursor->toArray()[0];

    echo $buildInfo->version, "\n";

    ?>

Результат выполнения приведённого примера:

    Provided apiStrict:true, but the command buildInfo is not in API Version 1

## Содержание

- MongoDB\Driver\ServerApi::bsonSerialize — Возвращает объект для сериализации BSON
- MongoDB\Driver\ServerApi::__construct — Создаёт новый экземпляр ServerApi

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open