Spec-Zone.ru › Yii 2.0

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API