Класс yii\mongodb\Connection
| Наследование | yii\mongodb\Connection » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-mongodb/blob/master/Connection.php |
Connection представляет собой подключение к серверу MongoDb.
Connection работает совместно с yii\mongodb\Database и yii\mongodb\Collection для обеспечения доступа к данным в базе данных Mongo. Они являются оболочками для [[MongoDB PHP extension]](http://us1.php.net/manual/en/book.mongo.php).
Для установления подключения к базе данных, задайте $dsn, а затем вызовите open() со значением true.
Следующий пример демонстрирует, как создать экземпляр Connection и установить подключение к базе данных:
$connection = new \yii\mongodb\Connection([
'dsn' => $dsn,
]);
$connection->open();
После установления подключения к Mongo, можно получить доступ к базам данных и коллекциям Mongo:
$database = $connection->getDatabase('my_mongo_db');
$collection = $database->getCollection('customer');
$collection->insert(['name' => 'John Smith', 'status' => 1]);
Вы можете работать с несколькими разными базами данных на одном сервере с помощью этого класса. Однако, хотя маловероятно, что вашему приложению это понадобится, класс Connection предоставляет возможность использовать $defaultDatabaseName, а также сокращенный метод getCollection() для получения конкретного экземпляра коллекции:
// get collection 'customer' from default database:
$collection = $connection->getCollection('customer');
// get collection 'customer' from database 'mydatabase':
$collection = $connection->getCollection(['mydatabase', 'customer']);
Connection часто используется как компонент приложения и настраивается в конфигурации приложения, как показано ниже:
[
'components' => [
'mongodb' => [
'class' => '\yii\mongodb\Connection',
'dsn' => 'mongodb://developer:password@localhost:27017/mydatabase',
],
],
]
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $behaviors | yii\base\Behavior[] | Список присоединенных к этому компоненту поведений | yii\base\Component |
| $database | yii\mongodb\Database | Экземпляр базы данных. | yii\mongodb\Connection |
| $defaultDatabaseName | string | Имя базы данных по умолчанию. | yii\mongodb\Connection |
| $driverOptions | array | Параметры для драйвера MongoDB. | yii\mongodb\Connection |
| $dsn | string | Хост:порт Правильный синтаксис: mongodb://[имя_пользователя:пароль@]хост1[:порт1][,хост2[:порт2:],. | yii\mongodb\Connection |
| $enableLogging | boolean | Включить протоколирование выполнения команд и запросов. | yii\mongodb\Connection |
| $enableProfiling | boolean | Включить профилирование команд и запросов. | yii\mongodb\Connection |
| $fileCollection | yii\mongodb\file\Collection | Экземпляр коллекции Mongo GridFS. | yii\mongodb\Connection |
| $fileStreamProtocol | string | Название протокола, который должен использоваться для оболочки потока GridFS. | yii\mongodb\Connection |
| $fileStreamWrapperClass | string | Имя класса, который должен использоваться в качестве оболочки потока для протокола $fileStreamProtocol. | yii\mongodb\Connection |
| $isActive | boolean | Установлено ли подключение к Mongo. | yii\mongodb\Connection |
| $logBuilder | yii\mongodb\LogBuilder | Создатель логов для этого подключения. | yii\mongodb\Connection |
| $manager | \MongoDB\Driver\Manager | Менеджер драйвера MongoDB. | yii\mongodb\Connection |
| $options | array | Параметры подключения. | yii\mongodb\Connection |
| $queryBuilder | yii\mongodb\QueryBuilder | Построитель запросов для этого подключения MongoDB. | yii\mongodb\Connection |
| $typeMap | array | Карта типов для десериализации BSON. | yii\mongodb\Connection |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в null. | yii\base\Component |
| attachBehavior() | Присоединяет поведение к компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведений, по которым должен действовать этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| close() | Закрывает текущее активное подключение к БД. | yii\mongodb\Connection |
| createCommand() | Создаёт команду MongoDB. | yii\mongodb\Connection |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getCollection() | Возвращает коллекцию MongoDB с заданным именем. | yii\mongodb\Connection |
| getDatabase() | Возвращает базу данных MongoDB с заданным именем. | yii\mongodb\Connection |
| getDefaultDatabaseName() | Возвращает имя базы данных по умолчанию; если оно не установлено, пытается определить его из значения $dsn. | yii\mongodb\Connection |
| getFileCollection() | Возвращает коллекцию MongoDB GridFS. | yii\mongodb\Connection |
| getIsActive() | Возвращает значение, указывающее, установлено ли подключение к Mongo. | yii\mongodb\Connection |
| getLogBuilder() | Возвращает генератор логов для этого подключения. | yii\mongodb\Connection |
| getQueryBuilder() | Возвращает генератор запросов для этого подключения к MongoDB. | yii\mongodb\Connection |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\base\Object |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| open() | Устанавливает подключение к Mongo. | yii\mongodb\Connection |
| registerFileStreamWrapper() | Регистрирует оболочку потока GridFS для протокола $fileStreamProtocol. | yii\mongodb\Connection |
| setDefaultDatabaseName() | Устанавливает имя базы данных по умолчанию. | yii\mongodb\Connection |
| setLogBuilder() | Устанавливает генератор логов, используемый для этого подключения. | yii\mongodb\Connection |
| setQueryBuilder() | Устанавливает генератор запросов для этого подключения к MongoDB. | yii\mongodb\Connection |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| initConnection() | Инициализирует подключение к БД. | yii\mongodb\Connection |
| selectDatabase() | Выбирает базу данных с заданным именем. | yii\mongodb\Connection |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_OPEN | \yii\mongodb\Event | Событие, которое срабатывает после установления подключения к БД. | yii\mongodb\Connection |
Подробное описание свойств
$database общедоступное только для чтения свойство
Экземпляр базы данных.
public yii\mongodb\Database getDatabase ( $name = null, $refresh = false )
$defaultDatabaseName общедоступное свойство
Имя базы данных по умолчанию.
public string getDefaultDatabaseName ( )
public void setDefaultDatabaseName ( $name )
$driverOptions общедоступное свойство
Параметры для драйвера MongoDB. Любые специфичные для драйвера параметры, не включённые в строку подключения к MongoDB.
См. также http://php.net/manual/en/mongodb-driver-manager.construct.php.
public array $driverOptions = []
$dsn общедоступное свойство
Хост:порт
Правильный синтаксис: mongodb://[имя пользователя:пароль@]хост1[:порт1][,хост2[:порт2:],...][/имя базы данных] Например: mongodb://localhost:27017 mongodb://разработчик:пароль@localhost:27017 mongodb://разработчик:пароль@localhost:27017/моябазаданных
public string $dsn = null
$enableLogging общедоступное свойство (доступно с версии 2.1)
Включать ли протоколирование выполнения команд и запросов. При включенном режиме производительность может снизиться. Команды MongoDB могут содержать большие данные, потребляя при этом процессор и память. В производственной среде рекомендуется отключить этот параметр.
public boolean $enableLogging = true
$enableProfiling свойство общедоступное (доступно с версии 2.1)
Включить ли профилирование команд и запросов, которые выполняются. Этот параметр не будет иметь эффекта, если $enableLogging отключен.
public boolean $enableProfiling = true
$fileCollection общедоступное только для чтения свойство
Экземпляр коллекции Mongo GridFS.
public yii\mongodb\file\Collection getFileCollection ( $prefix = 'fs', $refresh = false )
$fileStreamProtocol общедоступное свойство (доступно с версии 2.1)
Имя протокола, который должен использоваться для оболочки потока GridFS. Разрешены только буквенно-цифровые значения: не используйте специальные символы URL, такие как '/', '&', ':' и т. д.
См. также yii\mongodb\file\StreamWrapper.
public string $fileStreamProtocol = 'gridfs'
$fileStreamWrapperClass общедоступное свойство (доступно с версии 2.1)
Имя класса, который должен служить оболочкой потока для протокола $fileStreamProtocol.
public string $fileStreamWrapperClass = 'yii\mongodb\file\StreamWrapper'
$isActive общедоступное только для чтения свойство
Установлено ли соединение с Mongo.
public boolean getIsActive ( )
$logBuilder общедоступное свойство
Построитель логов для этого соединения.
public yii\mongodb\LogBuilder getLogBuilder ( )
public void setLogBuilder ( $logBuilder )
$manager общедоступное свойство (доступно с версии 2.1)
Менеджер драйвера MongoDB.
public \MongoDB\Driver\Manager $manager = null
$options общедоступное свойство
Параметры подключения. Например:
[
'socketTimeoutMS' => 1000, // how long a send or receive on a socket can take before timing out
'ssl' => true // initiate the connection with TLS/SSL
]
См. также https://docs.mongodb.com/manual/reference/connection-string/#connections-connection-options.
public array $options = []
$queryBuilder общедоступное свойство
Построитель запросов для этого соединения MongoDB.
public yii\mongodb\QueryBuilder getQueryBuilder ( )
public void setQueryBuilder ( $queryBuilder )
$typeMap общедоступное свойство (доступно с версии 2.1)
Карта типов, используемая для BSON-десериализации. Примечание: карта типов по умолчанию будет автоматически объединена с этим полем, возможно, перезаписывая значения, заданные пользователем.
См. также http://php.net/manual/en/mongodb-driver-cursor.settypemap.php.
public array $typeMap = []
Подробное описание методов
close() public method
Закрывает текущее активное подключение к базе данных.
Не выполняет никаких действий, если подключение уже закрыто.
| public void close ( ) |
|---|
createCommand() public method (available since version 2.1)
Создаёт команду MongoDB.
| public yii\mongodb\Command createCommand ( $document = [], $databaseName = null ) | ||
|---|---|---|
| $document | array |
Содержимое документа команды. |
| $databaseName | string|null |
Имя базы данных; если не задано, будет использовано значение $defaultDatabaseName. |
| return | yii\mongodb\Command |
Экземпляр команды. |
getCollection() public method
Возвращает коллекцию MongoDB с заданным именем.
| public yii\mongodb\Collection getCollection ( $name, $refresh = false ) | ||
|---|---|---|
| $name | string|array |
Имя коллекции. Если строка, считается именем коллекции в базе данных по умолчанию. Если массив, первый элемент считается именем базы данных, второй — именем коллекции в этой базе данных. |
| $refresh | boolean |
Перезагрузить экземпляр коллекции, даже если он найден в кэше. |
| return | yii\mongodb\Collection |
Экземпляр коллекции Mongo. |
getDatabase() public method
Возвращает базу данных MongoDB с заданным именем.
| public yii\mongodb\Database getDatabase ( $name = null, $refresh = false ) | ||
|---|---|---|
| $name | string|null |
Имя базы данных; если null, используется значение по умолчанию. |
| $refresh | boolean |
Перезагрузить соединение с базой данных, даже если оно найдено в кэше. |
| return | yii\mongodb\Database |
Экземпляр базы данных. |
getDefaultDatabaseName() public method
Возвращает имя базы данных по умолчанию. Если оно не задано, пытается определить его из значения $dsn.
| public string getDefaultDatabaseName ( ) | ||
|---|---|---|
| return | string |
Имя базы данных по умолчанию |
| throws | yii\base\InvalidConfigException |
если невозможно определить имя базы данных по умолчанию. |
getFileCollection() public method
Возвращает коллекцию MongoDB GridFS.
| public yii\mongodb\file\Collection getFileCollection ( $prefix = 'fs', $refresh = false ) | ||
|---|---|---|
| $prefix | string|array |
Префикс коллекции. Если строка, считается префиксом коллекции GridFS в базе данных по умолчанию. Если массив, первый элемент считается именем базы данных, второй — префиксом коллекции GridFS в этой базе данных; если второго элемента нет, используется префикс "fs" по умолчанию. |
| $refresh | boolean |
Перезагрузить экземпляр коллекции, даже если он найден в кэше. |
| return | yii\mongodb\file\Collection |
Экземпляр коллекции Mongo GridFS. |
getIsActive() public method
Возвращает значение, указывающее, установлено ли соединение с Mongo.
| public boolean getIsActive ( ) | ||
|---|---|---|
| return | boolean |
Установлено ли соединение с Mongo |
getLogBuilder() public method (available since version 2.1)
Возвращает конструктор лога для этого подключения.
| public yii\mongodb\LogBuilder getLogBuilder ( ) | ||
|---|---|---|
| return | yii\mongodb\LogBuilder |
Конструктор лога для этого подключения. |
getQueryBuilder() public method (available since version 2.1)
Возвращает конструктор запросов для этого подключения MongoDB.
| public yii\mongodb\QueryBuilder getQueryBuilder ( ) | ||
|---|---|---|
| return | yii\mongodb\QueryBuilder |
Конструктор запросов для этого подключения MongoDB. |
initConnection() protected method
Инициализирует соединение с базой данных.
Этот метод вызывается сразу после установления соединения с базой данных. Стандартная реализация срабатывает событие EVENT_AFTER_OPEN.
| protected void initConnection ( ) |
|---|
open() public method
Устанавливает соединение с Mongo.
Не выполняет никаких действий, если соединение с MongoDB уже установлено.
| public void open ( ) | ||
|---|---|---|
| throws | yii\mongodb\Exception |
если соединение не удалось установить |
registerFileStreamWrapper() public method
Регистрирует оболочку потока файла GridFS для протокола $fileStreamProtocol.
| public string registerFileStreamWrapper ( $force = false ) | ||
|---|---|---|
| $force | boolean |
Принудительно регистрировать, даже если оболочка уже зарегистрирована. |
| return | string |
Зарегистрированный протокол потока. |
selectDatabase() protected method
Выбирает базу данных с заданным именем.
| protected yii\mongodb\Database selectDatabase ( $name ) | ||
|---|---|---|
| $name | string |
Имя базы данных. |
| return | yii\mongodb\Database |
Экземпляр базы данных. |
setDefaultDatabaseName() public method
Устанавливает имя базы данных по умолчанию.
| public void setDefaultDatabaseName ( $name ) | ||
|---|---|---|
| $name | string |
Имя базы данных по умолчанию. |
setLogBuilder() public method (available since version 2.1)
Устанавливает конструктор лога, используемый для этого подключения.
| public void setLogBuilder ( $logBuilder ) | ||
|---|---|---|
| $logBuilder | array|string|yii\mongodb\LogBuilder |
Конструктор лога для этого подключения. |
setQueryBuilder() public method (available since version 2.1)
Устанавливает конструктор запросов для этого подключения к MongoDB.
| public void setQueryBuilder ( $queryBuilder ) | ||
|---|---|---|
| $queryBuilder | yii\mongodb\QueryBuilder|array|string|null |
Конструктор запросов для этого подключения к MongoDB. |
Подробное описание событий
EVENT_AFTER_OPEN событие типа \yii\mongodb\Event
Событие, которое срабатывает после установления подключения к БД
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mongodb-connection.html