BaseSearch
abstract class BaseSearch (View source)
Properties
| protected object | $db | ||
| protected string | $db_type | ||
| protected ConfigurationInterface | $config | ||
| protected IPAddressValidator | $ipValidator | ||
| protected UserContextService | $userContext |
Methods
No description
Builds the search string for the given 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.
Punycode names whose decoded form contains the query.
Extend a name predicate so partial IDN queries match. Returns the SQL to append, binding one placeholder per matching name into $params.
No description
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
protected array
buildSearchString(array $parameters)
Builds the search string for the given parameters.
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.
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.
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.
protected string
handleSqlMode()
No description
protected void
restoreSqlMode(string $originalSqlMode)
Restores the original SQL mode for the MySQL database connection if needed.