Евгений Бунин

PHP, Kohana, Joomla, MySQL, MongoDB, Facebook API

  • Increase font size
  • Default font size
  • Decrease font size

Как подключить Kohana 3.2 к Sphinx

Рассмотрим работу через интерфейс SphinxQL.

Все что нам надо, это:
1.Написать драйвер SphinxQL, который будет внедрен в обертку Kohana_Database. Ничего сложного, код почти схож с драйвером MySQL.
2.Внести настройки подключения к Sphinx.

И так. Создаем ядро драйвера Kohana_Database_SphinxQL в /modules/database/classes/kohana/database/sphinxql.php

class Kohana_Database_SphinxQL extends Database {
}
 


И в тело класса помещаем содержимое из класса Kohana_Database_MySQL. Только потом надо убрать строчки $this->_select_db($database).
Затем создаем сам драйвер Database_SphinxQL который наследует Kohana_Database_SphinxQL соответственно.
После всего надо дописать настройки подключения в конфиг и пробуем подключиться.

 

class SphinxqlTest extends Kohana_UnitTest_TestCase {
 
  protected $db = null;
 
  public function setUp() {
    parent::setUp();
    // Подключиться к Sphinx
    $this->db = Database::instance('sphinx');
  }
 
  public function testQuery() {
 
    // Test Sphinx init
    $this->assertNotNull($this->db);
 
    $search = '"искомое слово"';
    $sql = "SELECT * FROM items WHERE MATCH('@title ".$search." ')";
    $result = $this->db->query( Database::SELECT, $sql )
      ->as_array();
 
    $this->assertEquals( count($result), 20 );
  }
 
}