# Класс MongoDB\BSON\Binary

(mongodb >=1.0.0)

## Введение

Класс представляет и обрабатывает типы двоичных данных в виде массива байтов для хранения BSON-документа. Бинарные значения хранят подтипы — идентификаторы, которые указывают тип данных в массиве байтов. Подтипы от 0 до 127 предопределили или зарезервировали. Подтипы в диапазоне 128-255 задаются пользователем.

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

final class MongoDB\BSON\Binary implements MongoDB\BSON\BinaryInterface, MongoDB\BSON\Type, JsonSerializable, Stringable {
/* Константы */
const int TYPE_GENERIC = 0;
const int TYPE_FUNCTION = 1;
const int TYPE_OLD_BINARY = 2;
const int TYPE_OLD_UUID = 3;
const int TYPE_UUID = 4;
const int TYPE_MD5 = 5;
const int TYPE_ENCRYPTED = 6;
const int TYPE_COLUMN = 7;
const int TYPE_SENSITIVE = 8;
const int TYPE_VECTOR = 9;
const int TYPE_USER_DEFINED = 128;
/* Методы */
final public function __construct(string `$data`, int `$type` = MongoDB\BSON\Binary::TYPE_GENERIC)
final public static function fromVector(array `$vector`, MongoDB\BSON\VectorType `$vectorType`): MongoDB\BSON\Binary
final public function getData(): string
final public function getType(): int
final public function getVectorType(): MongoDB\BSON\VectorType
final public function jsonSerialize(): mixed
final public function toArray(): array
final public function __toString(): string
}

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

`MongoDB\BSON\Binary::TYPE_GENERIC`
  Бинарные данные общего подтипа.
`MongoDB\BSON\Binary::TYPE_FUNCTION`
  Функция.
`MongoDB\BSON\Binary::TYPE_OLD_BINARY`
  Бинарные данные общего подтипа (константу объявили устаревшей в пользу `MongoDB\BSON\Binary::TYPE_GENERIC`).
`MongoDB\BSON\Binary::TYPE_OLD_UUID`
  Универсальный уникальный идентификатор (константу объявили устаревшей в пользу `MongoDB\BSON\Binary::TYPE_UUID`). Обязательное требование к двоичным данным этого типа в объекте Binary — длина составляет 16 байтов. Исторически другие драйверы кодировали значения этого типа по правилам, которые соответствовали внутренним языковым соглашениям (например, с разным порядком байтов), что делает тип непереносимым. PHP-модуль не применяет обработок для кодирования или декодирования данных этого типа.
`MongoDB\BSON\Binary::TYPE_UUID`
  Универсальный уникальный идентификатор. Обязательное требование к двоичным данным этого типа в объекте Binary — длина составляет 16 байтов и данные закодировали по правилам стандарта » RFC 4122.
`MongoDB\BSON\Binary::TYPE_MD5`
  Хеш в формате MD5. Обязательное требование к двоичным данным этого типа в объекте Binary — длина составляет 16 байтов.
`MongoDB\BSON\Binary::TYPE_ENCRYPTED`
  Зашифрованное значение. Подтип для шифрования на стороне клиента.
`MongoDB\BSON\Binary::TYPE_COLUMN`
  Данные столбца. Подтип для коллекций временны́х рядов.
`MongoDB\BSON\Binary::TYPE_SENSITIVE`
  Конфиденциальные данные. Подтип для конфиденциальных данных, которые по возможности исключают из логирования на стороне сервера.
`MongoDB\BSON\Binary::TYPE_VECTOR`
  Векторные данные. Подтип оптимизирует хранение векторов и ускоряет векторный поиск в MongoDB.
`MongoDB\BSON\Binary::TYPE_USER_DEFINED`
  Пользовательский тип. Типы с 0 по 127 предопределили или зарезервировали, а типы со 128 по 255 предусмотрели для определения в пользовательских целях.

## Список изменений

Версия | Описание
--- | ---
PECL-модуль mongodb 2.2.0 | Добавили константу `MongoDB\BSON\Binary::TYPE_VECTOR`, а также функции MongoDB\BSON\Binary::fromVector(), MongoDB\BSON\Binary::getVectorType() и MongoDB\BSON\Binary::toArray().
PECL-модуль mongodb 2.0.0 | Класс больше не реализует интерфейс Serializable.
PECL-модуль mongodb 1.17.0 | Добавили тип `MongoDB\BSON\Binary::TYPE_SENSITIVE`.
PECL-модуль mongodb 1.12.0 | Реализовали интерфейс Stringable для PHP 8.0+. Добавили тип `MongoDB\BSON\Binary::TYPE_COLUMN`.
PECL-модуль mongodb 1.7.0 | Добавили тип `MongoDB\BSON\Binary::TYPE_ENCRYPTED`.
PECL-модуль mongodb 1.3.0 | Реализовали интерфейс MongoDB\BSON\BinaryInterface.
PECL-модуль mongodb 1.2.0 | Реализовали интерфейсы Serializable и JsonSerializable.

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

- MongoDB\BSON\Binary::__construct — Создаёт новый объект с типом данных Binary
- MongoDB\BSON\Binary::fromVector — Создаёт объект Binary с подтипом MongoDB\BSON\Binary::SUBTYPE_VECTOR из массива векторных данных и типа вектора
- MongoDB\BSON\Binary::getData — Возвращает данные, которые содержит объект типа данных Binary
- MongoDB\BSON\Binary::getType — Возвращает тип данных, которые содержит объект типа данных Binary
- MongoDB\BSON\Binary::getVectorType — Возвращает тип данных объекта Binary с подтипом вектора
- MongoDB\BSON\Binary::jsonSerialize — Возвращает преобразуемое в JSON-формат представление
- MongoDB\BSON\Binary::toArray — Возвращает вектор Binary с подтипом MongoDB\BSON\Binary::SUBTYPE_VECTOR в виде массива
- MongoDB\BSON\Binary::__toString — Возвращает данные, которые содержит объект типа данных Binary

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