MediaWiki master
RemoteIcuCollation Class Reference

An ICU collation that uses a remote server to compute sort keys. More...

Inherits Collation.

Collaboration diagram for RemoteIcuCollation:

Public Member Functions

 __construct (ShellboxClientFactory $shellboxClientFactory, $locale)
 
 getFirstLetter ( $string)
 Given a string, return the logical "first letter" to be used for grouping on category pages and so on.
 
 getSortKey ( $string)
 Given a string, convert it to a (hopefully short) key that can be used for efficient sorting.
 
 getSortKeys ( $strings)
 Get multiple sort keys.
 

Static Public Member Functions

static doGetSortKeys ( $locale, $blob)
 The remote entry point.
 

Detailed Description

An ICU collation that uses a remote server to compute sort keys.

This can be used in conjunction with $wgTempCategoryCollations to migrate to a different version of ICU.

Definition at line 10 of file RemoteIcuCollation.php.

Constructor & Destructor Documentation

◆ __construct()

RemoteIcuCollation::__construct ( ShellboxClientFactory $shellboxClientFactory,
$locale )
Parameters
ShellboxClientFactory$shellboxClientFactory
string$locale

Definition at line 18 of file RemoteIcuCollation.php.

References MediaWiki\Shell\ShellboxClientFactory\getRpcClient().

Member Function Documentation

◆ doGetSortKeys()

static RemoteIcuCollation::doGetSortKeys ( $locale,
$blob )
static

The remote entry point.

Get sort keys for an encoded list of inputs.

Parameters
string$localeThe ICU locale
string$blobThe input array encoded with encode()
Returns
string The encoded result

Definition at line 94 of file RemoteIcuCollation.php.

◆ getFirstLetter()

RemoteIcuCollation::getFirstLetter ( $string)

Given a string, return the logical "first letter" to be used for grouping on category pages and so on.

This has to be coordinated carefully with convertToSortkey(), or else the sorted list might jump back and forth between the same "initial letters" or other pathological behavior. For instance, if you just return the first character, but "a" sorts the same as "A" based on getSortKey(), then you might get a list like

== A ==

  • [[Aardvark]]

== a ==

  • [[antelope]]

== A ==

  • [[Ape]]

etc., assuming for the sake of argument that $wgCapitalLinks is false.

Since
1.16.3
Parameters
string$stringUTF-8 string
Returns
string UTF-8 string corresponding to the first letter of input

Reimplemented from Collation.

Definition at line 82 of file RemoteIcuCollation.php.

◆ getSortKey()

RemoteIcuCollation::getSortKey ( $string)

Given a string, convert it to a (hopefully short) key that can be used for efficient sorting.

A binary sort according to the sortkeys corresponds to a logical sort of the corresponding strings. Current code expects that a line feed character should sort before all others, but has no other particular expectations (and that one can be changed if necessary).

Since
1.16.3
Parameters
string$stringUTF-8 string
Returns
string Binary sortkey

Reimplemented from Collation.

Definition at line 24 of file RemoteIcuCollation.php.

References getSortKeys().

◆ getSortKeys()

RemoteIcuCollation::getSortKeys ( $strings)

Get multiple sort keys.

Parameters
string[]$strings
Returns
string[]

Reimplemented from Collation.

Definition at line 60 of file RemoteIcuCollation.php.

Referenced by getSortKey().


The documentation for this class was generated from the following file: