GenericDatabase.php in Search API 8
File
modules/search_api_db/src/DatabaseCompatibility/GenericDatabase.php
View source
<?php
namespace Drupal\search_api_db\DatabaseCompatibility;
use Drupal\Component\Transliteration\TransliterationInterface;
use Drupal\Core\Database\Connection;
use Drupal\Core\Database\Query\SelectInterface;
class GenericDatabase implements DatabaseCompatibilityHandlerInterface {
protected $database;
protected $transliterator;
public function __construct(Connection $database, TransliterationInterface $transliterator) {
$this->database = $database;
$this->transliterator = $transliterator;
}
public function getDatabase() {
return $this->database;
}
public function getCloneForDatabase(Connection $database) {
$service = clone $this;
$service->database = $database;
return $service;
}
public function alterNewTable($table, $type = 'text') {
}
public function preprocessIndexValue($value, $type = 'text') {
if ($type == 'text') {
return $value;
}
return mb_strtolower($this->transliterator
->transliterate($value));
}
public function orderByRandom(SelectInterface $query) {
$alias = $query
->addExpression('random()', 'random_order_field');
$query
->orderBy($alias);
}
}