You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yii\sphinx; |
|
|
|
/** |
|
* Class Connection |
|
* |
|
* @property Schema $schema The schema information for this Sphinx connection. This property is read-only. |
|
* @method Schema getSchema() The schema information for this Sphinx connection |
|
* |
|
* @author Paul Klimov <klimov.paul@gmail.com> |
|
* @since 2.0 |
|
*/ |
|
class Connection extends \yii\db\Connection |
|
{ |
|
/** |
|
* @inheritdoc |
|
*/ |
|
public $schemaMap = [ |
|
'mysqli' => 'yii\sphinx\Schema', // MySQL |
|
'mysql' => 'yii\sphinx\Schema', // MySQL |
|
]; |
|
|
|
/** |
|
* Obtains the schema information for the named index. |
|
* @param string $name index name. |
|
* @param boolean $refresh whether to reload the table schema even if it is found in the cache. |
|
* @return IndexSchema index schema information. Null if the named index does not exist. |
|
*/ |
|
public function getIndexSchema($name, $refresh = false) |
|
{ |
|
return $this->getSchema()->getIndexSchema($name, $refresh); |
|
} |
|
|
|
/** |
|
* 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 special characters including '(', '[[' and '{{', |
|
* then this method will do nothing. |
|
* @param string $name index name |
|
* @return string the properly quoted index name |
|
*/ |
|
public function quoteIndexName($name) |
|
{ |
|
return $this->getSchema()->quoteIndexName($name); |
|
} |
|
|
|
/** |
|
* Alias of [[quoteIndexName()]]. |
|
* @param string $name table name |
|
* @return string the properly quoted table name |
|
*/ |
|
public function quoteTableName($name) |
|
{ |
|
return $this->quoteIndexName($name); |
|
} |
|
|
|
/** |
|
* Creates a command for execution. |
|
* @param string $sql the SQL statement to be executed |
|
* @param array $params the parameters to be bound to the SQL statement |
|
* @return Command the Sphinx command |
|
*/ |
|
public function createCommand($sql = null, $params = []) |
|
{ |
|
$this->open(); |
|
$command = new Command([ |
|
'db' => $this, |
|
'sql' => $sql, |
|
]); |
|
return $command->bindValues($params); |
|
} |
|
} |