abstract class BaseSearch (View source)

Properties

protected object $db
protected string $db_type
protected ConfigurationInterface $config
protected IPAddressValidator $ipValidator
protected UserContextService $userContext

Methods

__construct($db, $config, string $db_type, IPAddressValidator|null $ipValidator = null, UserContextService|null $userContext = null)

No description

array
buildSearchString(array $parameters)

Builds the search string for the given parameters.

string
buildRawSearchString(array $parameters)

The needle for free-text columns. Record content and comments hold whatever the user typed, so the punycoded form of the query cannot match them.

array
idnNamesMatching(string $table, string $column, string $query)

Punycode names whose decoded form contains the query.

string
idnNameCondition(string $table, string $column, string $query, string $prefix, array $params)

Extend a name predicate so partial IDN queries match. Returns the SQL to append, binding one placeholder per matching name into $params.

string
handleSqlMode()

No description

void
restoreSqlMode(string $originalSqlMode)

Restores the original SQL mode for the MySQL database connection if needed.

Details

__construct($db, $config, string $db_type, IPAddressValidator|null $ipValidator = null, UserContextService|null $userContext = null)

No description

Parameters

$db
$config
string $db_type
IPAddressValidator|null $ipValidator
UserContextService|null $userContext

protected array buildSearchString(array $parameters)

Builds the search string for the given parameters.

Parameters

array $parameters

An array containing search parameters, including 'reverse' for reverse DNS lookup, 'query' for the search term, and 'wildcard' for enabling/disabling wildcard search.

Return Value

array

An array containing the reverse search string, the updated parameters, and the generated search string.

protected string buildRawSearchString(array $parameters)

The needle for free-text columns. Record content and comments hold whatever the user typed, so the punycoded form of the query cannot match them.

Parameters

array $parameters

Return Value

string

protected array idnNamesMatching(string $table, string $column, string $query)

Punycode names whose decoded form contains the query.

The punycode of a substring is not a substring of the punycode, so a partial query like "munch" can never match "xn--mnchen-3ya" through LIKE. Decoding the IDN names and comparing in PHP is bounded to the rows that are actually punycode.

Parameters

string $table
string $column
string $query

Return Value

array

protected string idnNameCondition(string $table, string $column, string $query, string $prefix, array $params)

Extend a name predicate so partial IDN queries match. Returns the SQL to append, binding one placeholder per matching name into $params.

Parameters

string $table
string $column
string $query
string $prefix
array $params

Return Value

string

protected string handleSqlMode()

No description

Return Value

string

protected void restoreSqlMode(string $originalSqlMode)

Restores the original SQL mode for the MySQL database connection if needed.

Parameters

string $originalSqlMode

The original SQL mode to be restored.

Return Value

void