Класс yii\sphinx\Connection
| Наследование | yii\sphinx\Connection » yii\db\Connection » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2-sphinx/blob/master/Connection.php |
Connection представляет соединение с Sphinx через протокол MySQL.
Этот класс использует PDO для поддержания такого соединения. Примечание: хотя PDO поддерживает множество драйверов баз данных, этот класс поддерживает только MySQL.
Для настройки Sphinx "searchd" для поддержки протокола MySQL необходимо добавить следующую конфигурацию:
searchd
{
listen = localhost:9306:mysql41
...
}
Следующий пример демонстрирует создание экземпляра Connection и установление соединения с Sphinx:
$connection = new \yii\db\Connection([
'dsn' => 'mysql:host=127.0.0.1;port=9306;',
'username' => $username,
'password' => $password,
]);
$connection->open();
После установления соединения с Sphinx, можно выполнять SQL-запросы, такие как следующие:
$command = $connection->createCommand("SELECT * FROM idx_article WHERE MATCH('programming')");
$articles = $command->queryAll();
$command = $connection->createCommand('UPDATE idx_article SET status=2 WHERE id=1');
$command->execute();
Для получения дополнительной информации о выполнении различных запросов к базе данных, обратитесь к yii\sphinx\Command.
Этот класс поддерживает транзакции точно так же, как и "yii\db\Connection".
Примечание: хотя этот класс расширяет "yii\db\Connection", некоторые его методы не поддерживаются.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $attributes | массив | Атрибуты PDO (имя => значение), которые должны быть установлены при вызове open() для создания подключения к базе данных. | yii\db\Connection |
| $behaviors | yii\base\Behavior[] | Список поведений, прикрепленных к этому компоненту | yii\base\Component |
| $charset | строка | Кодировка, используемая для подключения к базе данных. | yii\db\Connection |
| $commandClass | строка | Класс, используемый для создания новых объектов базы данных yii\db\Command. | yii\db\Connection |
| $driverName | строка | Имя драйвера базы данных | yii\db\Connection |
| $dsn | строка | Имя источника данных (DSN) содержит информацию, необходимую для подключения к базе данных. | yii\db\Connection |
| $emulatePrepare | логическое значение | Включить эмуляцию prepare. | yii\db\Connection |
| $enableFloatConversion | логическое значение | Включить преобразование параметров float в прямую вставку в SQL. | yii\sphinx\Connection |
| $enableLogging | логическое значение | Включить логирование запросов к базе данных. | yii\db\Connection |
| $enableProfiling | логическое значение | Включить профилирование запросов к базе данных. | yii\db\Connection |
| $enableQueryCache | логическое значение | Включить кэширование запросов. | yii\db\Connection |
| $enableSavepoint | логическое значение | Включить использование [savepoint](http://en. | yii\db\Connection |
| $enableSchemaCache | логическое значение | Включить кэширование схемы. | yii\db\Connection |
| $enableSlaves | логическое значение | Включить разделение чтение/запись с использованием $slaves для чтения данных. | yii\db\Connection |
| $isActive | логическое значение | Установлено ли соединение с базой данных | yii\db\Connection |
| $lastInsertID | строка | Идентификатор последней вставленной строки или последнее значение, полученное из объекта последовательности | yii\sphinx\Connection |
| $master | yii\db\Connection | Текущее активное мастер-соединение. | yii\db\Connection |
| $masterConfig | массив | Конфигурация, которая должна быть объединена с каждой конфигурацией мастера, указанной в $masters. | yii\db\Connection |
| $masterPdo | PDO | Экземпляр PDO для текущего активного мастер-соединения. | yii\db\Connection |
| $masters | массив | Список конфигураций мастер-соединений. | yii\db\Connection |
| $password | строка | Пароль для подключения к базе данных. | yii\db\Connection |
| $pdo | PDO | Объект PHP PDO, связанный с этим подключением к базе данных. | yii\db\Connection |
| $pdoClass | строка | Пользовательский класс-обёртка для PDO. | yii\db\Connection |
| $queryBuilder | yii\db\QueryBuilder | Построитель запросов для текущего подключения к базе данных. | yii\db\Connection |
| $queryCache | yii\caching\CacheInterface|строка | Объект кэша или идентификатор компонента приложения кэширования, используемого для кэширования запросов. | yii\db\Connection |
| $queryCacheDuration | целое число | Значение по умолчанию, в секундах, для срока действия результатов запросов в кэше. | yii\db\Connection |
| $schema | yii\db\Schema | Информация о схеме для базы данных, открытой этим подключением. | yii\db\Connection |
| $schemaCache | yii\caching\CacheInterface|строка | Объект кэша или идентификатор компонента приложения кэширования, используемого для кэширования метаданных таблиц. | yii\db\Connection |
| $schemaCacheDuration | целое число | Количество секунд, в течение которых метаданные таблиц могут храниться в кэше. | yii\db\Connection |
| $schemaCacheExclude | массив | Список таблиц, метаданные которых НЕ должны кэшироваться. | yii\db\Connection |
| $schemaMap | массив | Сопоставление между именами драйверов PDO и классами yii\sphinx\Schema. | yii\sphinx\Connection |
| $serverRetryInterval | целое число | Интервал повторной попытки в секундах для серверов с ошибкой, перечисленных в $masters и $slaves. | yii\db\Connection |
| $serverStatusCache | yii\caching\CacheInterface|строка | Объект кэша или идентификатор компонента приложения кэширования, используемого для хранения состояния работоспособности серверов базы данных, указанных в $masters и $slaves. | yii\db\Connection |
| $shuffleMasters | логическое значение | Перемешивать ли $masters перед получением одного из них. | yii\db\Connection |
| $slave | yii\db\Connection | Текущее активное раб-соединение. | yii\db\Connection |
| $slaveConfig | массив | Конфигурация, которая должна быть объединена с каждой конфигурацией вторичного сервера, указанной в $slaves. | yii\db\Connection |
| $slavePdo | PDO | Экземпляр PDO для текущего активного вторичного соединения. | yii\db\Connection |
| $slaves | массив | Список конфигураций вторичных соединений. | yii\db\Connection |
| $tablePrefix | строка | Общий префикс или суффикс для имён таблиц. | yii\db\Connection |
| $transaction | yii\db\Transaction | Текущая активная транзакция. | yii\db\Connection |
| $username | строка | Имя пользователя для установления соединения с базой данных. | yii\db\Connection |
Public Methods
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Сброс соединения после клонирования. | yii\db\Connection |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __sleep() | Закрытие соединения перед сериализацией. | yii\db\Connection |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beginTransaction() | Начало транзакции. | yii\db\Connection |
| behaviors() | Возвращает список поведений, в соответствии с которыми должен вести себя этот компонент. | yii\base\Component |
| cache() | Использование кэша запросов для запросов, выполненных с вызываемым объектом. | yii\db\Connection |
| canGetProperty() | Возвращает значение, указывающее, может ли свойство читаться. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, может ли свойство устанавливаться. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| close() | Закрывает текущее активное соединение с БД. | yii\db\Connection |
| createCommand() | Создает команду для выполнения. | yii\sphinx\Connection |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| escapeMatchValue() | Экранирует все специальные символы из аргумента оператора 'MATCH'. | yii\sphinx\Connection |
| getBehavior() | Возвращает объект поведения с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединенные к этому компоненту. | yii\base\Component |
| getDriverName() | Возвращает имя драйвера БД. Основано на текущем $dsn, если он не был явно задан конечным пользователем. | yii\db\Connection |
| getIndexSchema() | Получает схему индекса с заданным именем. | yii\sphinx\Connection |
| getIsActive() | Возвращает значение, указывающее, установлено ли соединение с БД. | yii\db\Connection |
| getLastInsertID() | Этот метод не поддерживается Sphinx. | yii\sphinx\Connection |
| getMaster() | Возвращает текущее активное мастер-соединение. | yii\db\Connection |
| getMasterPdo() | Возвращает экземпляр PDO для текущего активного мастер-соединения. | yii\db\Connection |
| getQueryBuilder() | Возвращает билдер запросов для текущего соединения с БД. | yii\db\Connection |
| getQueryCacheInfo() | Возвращает текущую информацию о кэше запросов. | yii\db\Connection |
| getSchema() | Возвращает информацию о схеме базы данных, открытой этим соединением. | yii\db\Connection |
| getSlave() | Возвращает текущее активное раб-соединение. | yii\db\Connection |
| getSlavePdo() | Возвращает экземпляр PDO для текущего активного раб-соединения. | yii\db\Connection |
| getTableSchema() | Получает схему таблицы с заданным именем. | yii\db\Connection |
| getTransaction() | Возвращает текущую активную транзакцию. | yii\db\Connection |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, присоединенный к событию с заданным именем. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует объект. | yii\base\Object |
| noCache() | Временно отключает кэш запросов. | yii\db\Connection |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| open() | Устанавливает соединение с БД. | yii\db\Connection |
| quoteColumnName() | Приводит имя столбца к кавычкам для использования в запросе. | yii\db\Connection |
| quoteIndexName() | Приводит имя индекса к кавычкам для использования в запросе. | yii\sphinx\Connection |
| quoteSql() | Обрабатывает SQL-запрос, приводя к кавычкам имена таблиц и столбцов, заключенные в двойные квадратные скобки. | yii\db\Connection |
| quoteTableName() | Псевдоним для quoteIndexName(). | yii\sphinx\Connection |
| quoteValue() | Приводит строковое значение к кавычкам для использования в запросе. | yii\db\Connection |
| setDriverName() | Изменяет текущее имя драйвера. | yii\db\Connection |
| transaction() | Выполняет предоставленный обратный вызов в рамках транзакции. | yii\db\Connection |
| trigger() | Вызывает событие. | yii\base\Component |
| useMaster() | Выполняет предоставленный обратный вызов, используя мастер-соединение. | yii\db\Connection |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| createPdoInstance() | Создаёт экземпляр PDO. | yii\db\Connection |
| initConnection() | Инициализирует подключение к БД. | yii\db\Connection |
| openFromPool() | Открывает подключение к серверу в пуле. | yii\db\Connection |
| openFromPoolSequentially() | Открывает подключение к серверу в пуле. | yii\db\Connection |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_OPEN | \yii\db\Event | Событие, которое срабатывает после установления подключения к БД | yii\db\Connection |
| EVENT_BEGIN_TRANSACTION | \yii\db\Event | Событие, которое срабатывает непосредственно перед началом транзакции верхнего уровня | yii\db\Connection |
| EVENT_COMMIT_TRANSACTION | \yii\db\Event | Событие, которое срабатывает непосредственно после подтверждения транзакции верхнего уровня | yii\db\Connection |
| EVENT_ROLLBACK_TRANSACTION | \yii\db\Event | Событие, которое срабатывает непосредственно после отката транзакции верхнего уровня | yii\db\Connection |
Подробное описание свойств
$enableFloatConversion общедоступное свойство (доступно с версии 2.0.6)
Включить преобразование параметров float в прямую вставку в SQL. Это позволяет обрабатывать значения float, так как PDO не предоставляет специального типа параметра для привязки float, в то время как Sphinx не может обрабатывать значения float, переданные в качестве строковых значений.
public boolean $enableFloatConversion = true
$lastInsertID общедоступное только для чтения свойство
Идентификатор последней вставленной строки или последнее значение, полученное из объекта последовательности
public string getLastInsertID ( $sequenceName = '' )
$schemaMap общедоступное свойство
Сопоставление между именами драйверов PDO и классами yii\sphinx\Schema. Ключами массива являются имена драйверов PDO, а значениями — соответствующее имя класса схемы или конфигурация. Обратитесь к \yii\sphinx\Yii::createObject() за подробностями о том, как указать конфигурацию.
Это свойство в основном используется getSchema() при получении информации о схеме базы данных. Вам обычно не нужно устанавливать это свойство, если вы не хотите использовать собственный класс yii\sphinx\Schema для поддержки СУБД, которые не поддерживаются Yii.
public array $schemaMap = ['mysqli' => 'yii\sphinx\Schema', 'mysql' => 'yii\sphinx\Schema']
Подробное описание методов
createCommand() общедоступный метод
Создаёт команду для выполнения.
| public yii\sphinx\Command createCommand ( $sql = null, $params = [] ) | ||
|---|---|---|
| $sql | string |
SQL-запрос, который нужно выполнить |
| $params | array |
Параметры, которые нужно привязать к SQL-запросу |
| return | yii\sphinx\Command |
Команда Sphinx |
escapeMatchValue() общедоступный метод
Экранирует все специальные символы из аргумента оператора 'MATCH'.
Убедитесь, что вы используете этот метод при составлении оператора поиска 'MATCH'. Примечание: этот метод не выполняет цитирование, вы должны поместить результат в кавычки и выполнить дополнительное экранирование вручную, лучший способ сделать это — использовать параметр PDO.
| public string escapeMatchValue ( $str ) | ||
|---|---|---|
| $str | string |
Строка, которую нужно экранировать. |
| return | string |
Правильно экранированная строка. |
getIndexSchema() общедоступный метод
Получает информацию о схеме для указанного индекса.
| public yii\sphinx\IndexSchema getIndexSchema ( $name, $refresh = false ) | ||
|---|---|---|
| $name | string |
Имя индекса. |
| $refresh | boolean |
Перезагрузить схему таблицы, даже если она найдена в кэше. |
| return | yii\sphinx\IndexSchema |
Информация о схеме индекса. Нуль, если указанный индекс не существует. |
getLastInsertID() общедоступный метод
Этот метод не поддерживается Sphinx.
| public string getLastInsertID ( $sequenceName = '' ) | ||
|---|---|---|
| $sequenceName | string |
Имя объекта последовательности |
| return | string |
Идентификатор последней вставленной строки или последнее значение, полученное из объекта последовательности |
| throws | yii\base\NotSupportedException |
всегда. |
quoteIndexName() общедоступный метод
Приводит имя индекса в соответствие с запросом.
Если имя индекса содержит префикс схемы, префикс также будет корректно приведён к соответствию. Если имя индекса уже приведено к соответствию или содержит специальные символы, включая '(', '[[' и '{{', этот метод ничего не сделает.
| public string quoteIndexName ( $name ) | ||
|---|---|---|
| $name | string |
Имя индекса |
| return | string |
Правильно приведённое к соответствию имя индекса |
quoteTableName() общедоступный метод
Псевдоним quoteIndexName().
| public string quoteTableName ( $name ) | ||
|---|---|---|
| $name | string |
Имя таблицы |
| return | string |
Правильно приведённое к соответствию имя таблицы |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-sphinx-connection.html