Class yii\sphinx\Schema

Inheritanceyii\sphinx\Schema » yii\base\BaseObject
Available since version2.0

Schema represents the Sphinx schema information.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$db yii\sphinx\Connection The Sphinx connection yii\sphinx\Schema
$typeMap array Mapping from physical column types (keys) to abstract column types (values) yii\sphinx\Schema

Public Methods

Hide inherited methods

MethodDescriptionDefined By
convertException() Converts a DB exception to a more concrete one if possible. yii\sphinx\Schema
createQueryBuilder() Creates a query builder for the Sphinx. yii\sphinx\Schema
getIndexNames() Returns all index names in the Sphinx. yii\sphinx\Schema
getIndexSchema() Obtains the metadata for the named index. yii\sphinx\Schema
getIndexSchemas() Returns the metadata for all indexes in the database. yii\sphinx\Schema
getIndexTypes() Returns all index types in the Sphinx. yii\sphinx\Schema
getPdoType() Determines the PDO type for the given PHP data value. yii\sphinx\Schema
getQueryBuilder() yii\sphinx\Schema
getRawIndexName() Returns the actual name of a given index name. yii\sphinx\Schema
isReadQuery() Returns a value indicating whether a SQL statement is for read purpose. yii\sphinx\Schema
quoteColumnName() Quotes a column name for use in a query. yii\sphinx\Schema
quoteIndexName() Quotes a index name for use in a query. yii\sphinx\Schema
quoteSimpleColumnName() Quotes a column name for use in a query. yii\sphinx\Schema
quoteSimpleIndexName() Quotes a index name for use in a query. yii\sphinx\Schema
quoteValue() Quotes a string value for use in a query. yii\sphinx\Schema
refresh() Refreshes the schema. yii\sphinx\Schema

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
applyDefaultColumns() Sets up the default columns for given index. yii\sphinx\Schema
findColumns() Collects the metadata of index columns. yii\sphinx\Schema
findIndexes() Returns all index names in the Sphinx. yii\sphinx\Schema
getCacheKey() Returns the cache key for the specified index name. yii\sphinx\Schema
getCacheTag() Returns the cache tag name. yii\sphinx\Schema
getColumnPhpType() Extracts the PHP type from abstract DB type. yii\sphinx\Schema
initIndexesInfo() Initializes information about name and type of all index in the Sphinx. yii\sphinx\Schema
loadColumnSchema() Loads the column information into a yii\sphinx\ColumnSchema object. yii\sphinx\Schema
loadIndexSchema() Loads the metadata for the specified index. yii\sphinx\Schema
resolveIndexNames() Resolves the index name. yii\sphinx\Schema
resolveIndexType() Resolves the index name. yii\sphinx\Schema

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
TYPE_BIGINT 'bigint' yii\sphinx\Schema
TYPE_BOOLEAN 'boolean' yii\sphinx\Schema
TYPE_FLOAT 'float' yii\sphinx\Schema
TYPE_INTEGER 'integer' yii\sphinx\Schema
TYPE_PK 'pk' The following are the supported abstract column data types. yii\sphinx\Schema
TYPE_STRING 'string' yii\sphinx\Schema
TYPE_TIMESTAMP 'timestamp' yii\sphinx\Schema

Property Details

$db public property

The Sphinx connection

public yii\sphinx\Connection $db null
$typeMap public property

Mapping from physical column types (keys) to abstract column types (values)

public array $typeMap = ['field' => self::TYPE_STRING'string' => self::TYPE_STRING'ordinal' => self::TYPE_STRING'integer' => self::TYPE_INTEGER'int' => self::TYPE_INTEGER'uint' => self::TYPE_INTEGER'bigint' => self::TYPE_BIGINT'timestamp' => self::TYPE_TIMESTAMP'bool' => self::TYPE_BOOLEAN'float' => self::TYPE_FLOAT'mva' => self::TYPE_INTEGER]

Method Details

applyDefaultColumns() protected method (available since version 2.0.6)

Sets up the default columns for given index.

This method should be used in case there is no way to find actual columns, like in some distributed indexes.

protected void applyDefaultColumns ( $index )
$index yii\sphinx\IndexSchema

The index metadata

convertException() public method

Converts a DB exception to a more concrete one if possible.

public \yii\db\Exception convertException ( Exception $e, $rawSql )
$e Exception
$rawSql string

SQL that produced exception

createQueryBuilder() public method

Creates a query builder for the Sphinx.

public yii\sphinx\QueryBuilder createQueryBuilder ( )
return yii\sphinx\QueryBuilder

Query builder instance

findColumns() protected method

Collects the metadata of index columns.

protected boolean findColumns ( $index )
$index yii\sphinx\IndexSchema

The index metadata

return boolean

Whether the index exists in the database

throws Exception

if DB query fails

findIndexes() protected method

Returns all index names in the Sphinx.

protected array findIndexes ( )
return array

All index names in the Sphinx.

getCacheKey() protected method

Returns the cache key for the specified index name.

protected mixed getCacheKey ( $name )
$name string

The index name

return mixed

The cache key

getCacheTag() protected method

Returns the cache tag name.

This allows refresh() to invalidate all cached index schemas.

protected string getCacheTag ( )
return string

The cache tag name

getColumnPhpType() protected method

Extracts the PHP type from abstract DB type.

protected string getColumnPhpType ( $column )
$column yii\sphinx\ColumnSchema

The column schema information

return string

PHP type name

getIndexNames() public method

Returns all index names in the Sphinx.

public string[] getIndexNames ( $refresh false )
$refresh boolean

Whether to fetch the latest available index names. If this is false, index names fetched previously (if available) will be returned.

return string[]

All index names in the Sphinx.

getIndexSchema() public method

Obtains the metadata for the named index.

public yii\sphinx\IndexSchema|null getIndexSchema ( $name, $refresh false )
$name string

Index name. The index name may contain schema name if any. Do not quote the index name.

$refresh boolean

Whether to reload the index schema even if it is found in the cache.

return yii\sphinx\IndexSchema|null

Index metadata. null - if the named index does not exist.

getIndexSchemas() public method

Returns the metadata for all indexes in the database.

public yii\sphinx\IndexSchema[] getIndexSchemas ( $refresh false )
$refresh boolean

Whether to fetch the latest available index schemas. If this is false, cached data may be returned if available.

return yii\sphinx\IndexSchema[]

The metadata for all indexes in the Sphinx. Each array element is an instance of yii\sphinx\IndexSchema or its child class.

getIndexTypes() public method

Returns all index types in the Sphinx.

public array getIndexTypes ( $refresh false )
$refresh boolean

Whether to fetch the latest available index types. If this is false, index types fetched previously (if available) will be returned.

return array

All index types in the Sphinx in format: index name => index type.

getPdoType() public method

Determines the PDO type for the given PHP data value.

See also http://www.php.net/manual/en/pdo.constants.php.

public integer getPdoType ( $data )
$data mixed

The data whose PDO type is to be determined

return integer

The PDO type

getQueryBuilder() public method

public yii\sphinx\QueryBuilder getQueryBuilder ( )
return yii\sphinx\QueryBuilder

The query builder for this connection.

getRawIndexName() public method

Returns the actual name of a given index name.

This method will strip off curly brackets from the given index name and replace the percentage character '%' with yii\sphinx\Connection::indexPrefix.

public string getRawIndexName ( $name )
$name string

The index name to be converted

return string

The real name of the given index name

initIndexesInfo() protected method

Initializes information about name and type of all index in the Sphinx.

protected void initIndexesInfo ( )
isReadQuery() public method

Returns a value indicating whether a SQL statement is for read purpose.

public boolean isReadQuery ( $sql )
$sql string

The SQL statement

return boolean

Whether a SQL statement is for read purpose.

loadColumnSchema() protected method

Loads the column information into a yii\sphinx\ColumnSchema object.

protected yii\sphinx\ColumnSchema loadColumnSchema ( $info )
$info array

Column information

return yii\sphinx\ColumnSchema

The column schema object

loadIndexSchema() protected method

Loads the metadata for the specified index.

protected yii\sphinx\IndexSchema|null loadIndexSchema ( $name )
$name string

Index name

return yii\sphinx\IndexSchema|null

Driver dependent index metadata. null - if the index does not exist.

quoteColumnName() public method

Quotes a column name for use in a query.

If the column name contains prefix, the prefix will also be properly quoted. If the column name is already quoted or contains '(', '[[' or '{{', then this method will do nothing.

See also quoteSimpleColumnName().

public string quoteColumnName ( $name )
$name string

Column name

return string

The properly quoted column name

quoteIndexName() public method

Quotes a index name for use in a query.

If the index name contains schema prefix, the prefix will also be properly quoted. If the index name is already quoted or contains '(' or '{{', then this method will do nothing.

See also \yii\sphinx\quoteSimpleTableName.

public string quoteIndexName ( $name )
$name string

Index name

return string

The properly quoted index name

quoteSimpleColumnName() public method

Quotes a column name for use in a query.

A simple column name has no prefix.

public string quoteSimpleColumnName ( $name )
$name string

Column name

return string

The properly quoted column name

quoteSimpleIndexName() public method

Quotes a index name for use in a query.

A simple index name has no schema prefix.

public string quoteSimpleIndexName ( $name )
$name string

Index name

return string

The properly quoted index name

quoteValue() public method

Quotes a string value for use in a query.

Note that if the parameter is not a string, it will be returned without change.

See also http://www.php.net/manual/en/function.PDO-quote.php.

public string quoteValue ( $str )
$str string

String to be quoted

return string

The properly quoted string

refresh() public method

Refreshes the schema.

This method cleans up all cached index schemas so that they can be re-created later to reflect the Sphinx schema change.

public void refresh ( )
resolveIndexNames() protected method

Resolves the index name.

protected void resolveIndexNames ( $index, $name )
$index yii\sphinx\IndexSchema

The index metadata object

$name string

The index name

resolveIndexType() protected method

Resolves the index name.

protected void resolveIndexType ( $index )
$index yii\sphinx\IndexSchema

The index metadata object