search_api-8.x-1.15/modules/search_api_db/src/DatabaseCompatibility/GenericDatabase.php
modules/search_api_db/src/DatabaseCompatibility/GenericDatabase.php
<?php
namespace Drupal\search_api_db\DatabaseCompatibility;
use Drupal\Component\Transliteration\TransliterationInterface;
use Drupal\Core\Database\Connection;
/**
* Represents any database for which no specifics are known.
*/
class GenericDatabase implements DatabaseCompatibilityHandlerInterface {
/**
* The connection to the database.
*
* @var \Drupal\Core\Database\Connection
*/
protected $database;
/**
* The transliteration service to use.
*
* @var \Drupal\Component\Transliteration\TransliterationInterface
*/
protected $transliterator;
/**
* Constructs a GenericDatabase object.
*
* @param \Drupal\Core\Database\Connection $database
* The connection to the database.
* @param \Drupal\Component\Transliteration\TransliterationInterface $transliterator
* The transliteration service to use.
*/
public function __construct(Connection $database, TransliterationInterface $transliterator) {
$this->database = $database;
$this->transliterator = $transliterator;
}
/**
* {@inheritdoc}
*/
public function getDatabase() {
return $this->database;
}
/**
* {@inheritdoc}
*/
public function getCloneForDatabase(Connection $database) {
$service = clone $this;
$service->database = $database;
return $service;
}
/**
* {@inheritdoc}
*/
public function alterNewTable($table, $type = 'text') {}
/**
* {@inheritdoc}
*/
public function preprocessIndexValue($value, $type = 'text') {
if ($type == 'text') {
return $value;
}
return mb_strtolower($this->transliterator->transliterate($value));
}
}
