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.
		
		
		
		
		
			
		
			
				
					
					
						
							81 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							81 lines
						
					
					
						
							2.3 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. | |
|  * @property QueryBuilder $queryBuilder The query builder for this Sphinx connection. This property is | |
|  * read-only. | |
|  * @method Schema getSchema() The schema information for this Sphinx connection | |
|  * @method QueryBuilder getQueryBuilder() he query builder 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); | |
| 	} | |
| } |