123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 |
- <?php
- #############################################################################
- # Object-oriented API
- #############################################################################
- /**
- * Collator class.
- *
- * This is a wrapper around ICU Collator C API (declared in ucol.h).
- *
- * Example:
- * <code>
- *
- * </code>
- *
- * @see http://www.icu-project.org/apiref/icu4c/ucol_8h.html
- * @see http://www.icu-project.org/apiref/icu4c/classCollator.html
- *
- */
- class Collator {
- #############################################################################
- # Common constants.
- #############################################################################
- /**
- * Locale-related constants.
- *
- * These will be moved out of Collator when Locale class is created.
- */
- const ULOC_ACTUAL_LOCALE = 0;
- const ULOC_VALID_LOCALE = 1;
- const ULOC_REQUESTED_LOCALE = 2;
- /*
- * WARNING:
- * The values described here are NOT the actual values in PHP code.
- * They are references to the ICU C definitions, so the line
- * const DEFAULT_STRENGTH = 'UCOL_DEFAULT_STRENGTH';
- * actually means that Collator::DEFAULT_STRENGTH is the same as
- * UCOL_DEFAULT_STRENGTH constant in the ICU library.
- */
- /**
- * Valid attribute values.
- *
- * @see Collator::setAttribute()
- * @see collator_set_attribute()
- */
- const DEFAULT_VALUE = 'UCOL_DEFAULT';
- const PRIMARY = 'UCOL_PRIMARY';
- const SECONDARY = 'UCOL_SECONDARY';
- const TERTIARY = 'UCOL_TERTIARY';
- const DEFAULT_STRENGTH = 'UCOL_DEFAULT_STRENGTH';
- const QUATERNARY = 'UCOL_QUATERNARY';
- const IDENTICAL = 'UCOL_IDENTICAL';
- const OFF = 'UCOL_OFF';
- const ON = 'UCOL_ON';
- const SHIFTED = 'UCOL_SHIFTED';
- const NON_IGNORABLE = 'UCOL_NON_IGNORABLE';
- const LOWER_FIRST = 'UCOL_LOWER_FIRST';
- const UPPER_FIRST = 'UCOL_UPPER_FIRST';
- /**
- * Valid attribute names.
- *
- * @see Collator::setAttribute()
- * @see collator_set_attribute()
- */
- const FRENCH_COLLATION = 'UCOL_FRENCH_COLLATION';
- const ALTERNATE_HANDLING = 'UCOL_ALTERNATE_HANDLING';
- const CASE_FIRST = 'UCOL_CASE_FIRST';
- const CASE_LEVEL = 'UCOL_CASE_LEVEL';
- const NORMALIZATION_MODE = 'UCOL_NORMALIZATION_MODE';
- const STRENGTH = 'UCOL_STRENGTH';
- const HIRAGANA_QUATERNARY_MODE = 'UCOL_HIRAGANA_QUATERNARY_MODE';
- const NUMERIC_COLLATION = 'UCOL_NUMERIC_COLLATION';
- /**
- * Create a collator
- *
- * @param string $locale The locale whose collation rules
- * should be used. Special values for
- * locales can be passed in - if null is
- * passed for the locale, the default
- * locale collation rules will be used. If
- * empty string ("") or "root" are passed,
- * UCA rules will be used.
- *
- * @return Collator New instance of Collator object.
- */
- public function __construct( $locale ) {}
- /**
- * Create a collator
- *
- * Creates a new instance of Collator.
- *
- * This method is useful when you prefer just to get null on error,
- * as if you called collator_create().
- *
- * @return Collator Newly created Collator instance,
- * or null on error.
- *
- * @see __construct()
- * @see collator_create()
- */
- public static function create( $locale ) {}
- /**
- * Get collator's last error code.
- *
- * @return int Error code returned by the last
- * Collator method call.
- */
- public function getErrorCode() {}
- /**
- * Return error text for the last ICU operation.
- *
- * @return string Description of an error occurred in the last
- * Collator method call.
- */
- public function getErrorMessage() {}
- /**
- * Compare two strings using PHP strcmp() semantics.
- *
- * Wrapper around ICU ucol_strcoll().
- *
- * @param string $str1 First string to compare.
- * @param string $str2 Second string to compare.
- *
- * @return int 1 if $str1 is greater than $str2;
- * 0 if $str1 is equal to $str2;
- * -1 if $str1 is less than $str2.
- * On error false is returned.
- */
- public function compare( $str1, $str2 ) {}
- /**
- * Equivalent to standard PHP sort() using Collator.
- *
- * @param array $arr Array of strings to sort
- * @param int $sort_flags Optional sorting type, one of the following:
- * - SORT_REGULAR - compare items normally (don't change types)
- * - SORT_NUMERIC - compare items numerically
- * - SORT_STRING - compare items as strings
- * Default sorting type is SORT_REGULAR.
- *
- * @return bool true on success or false on failure.
- */
- public function sort( $arr, $sort_flags ) {}
- /**
- * Sort array maintaining index association.
- *
- * Equivalent to standard PHP asort() using Collator.
- *
- * @param array $arr Array of strings to sort
- * @param int $sort_flags Optional sorting type
- *
- * @return bool true on success or false on failure.
- *
- * @see Collator::sort()
- */
- public function asort( $arr, $sort_flags ) {}
- /**
- * Equivalent to standard PHP sort() using Collator.
- *
- * Similar to Collator::sort().
- * Uses ICU ucol_getSortKey() to gain more speed on large arrays.
- *
- * @param array $arr Array of strings to sort
- *
- * @return bool true on success or false on failure.
- */
- public function sortWithSortKeys( $arr ) {}
- /**
- * @todo Do we want to support other standard PHP sort functions: ksort, rsort, asort?
- */
- /**
- * Get collation attribute value.
- *
- * Wrapper around ICU ucol_getAttribute().
- *
- * @param int $attr Attribute to get value for.
- *
- * @return int Attribute value, or false on error.
- */
- public function getAttribute( $attr ) {}
- /**
- * Set collation attribute.
- *
- * Wrapper around ICU ucol_setAttribute().
- *
- * @param int $attr Attribute.
- * @param int $val Attribute value.
- *
- * @return bool true on success, false otherwise.
- */
- public function setAttribute( $attr, $val ) {}
- /**
- * Get current collation strength.
- *
- * Wrapper around ICU ucol_getStrength().
- *
- * @return int Current collation strength, or false on error.
- */
- public function getStrength() {}
- /**
- * Set collation strength.
- *
- * Wrapper around ICU ucol_setStrength().
- *
- * @param int $strength Strength to set.
- *
- * @return bool true on success, false otherwise.
- */
- public function setStrength( $strength ) {}
- /**
- * Get the locale name of the collator.
- *
- * Wrapper around ICU ucol_getLocaleByType().
- *
- * @param int $type You can choose between requested, valid
- * and actual locale
- * (ULOC_REQUESTED_LOCALE,
- * ULOC_VALID_LOCALE, ULOC_ACTUAL_LOCALE,
- * respectively).
- *
- * @return string Real locale name from which the
- * collation data comes. If the collator
- * was instantiated from rules or an error occurred,
- * returns false.
- */
- public function getLocale( $type ) {}
- }
- #############################################################################
- # Procedural API
- #############################################################################
- /**
- * Create collator.
- *
- * @param string $locale The locale containing the required
- * collation rules. Special values for
- * locales can be passed in - if null is
- * passed for the locale, the default
- * locale collation rules will be used. If
- * empty string ("") or "root" are passed,
- * UCA rules will be used.
- *
- * @return Collator New instance of Collator object, or null on error.
- */
- function collator_create( $locale ) {}
- /**
- * Compare two strings.
- *
- * The strings will be compared using the options already
- * specified.
- *
- * @param Collator $coll Collator object.
- * @param string $str1 The first string to compare.
- * @param string $str2 The second string to compare.
- *
- * @return int 1 if $str1 is greater than $str2;
- * 0 if $str1 is equal to $str2;
- * -1 if $str1 is less than $str2.
- * On error false is returned.
- *
- */
- function collator_compare( $coll, $str1, $str2 ) {}
- /**
- * Sort array using specified collator.
- *
- * @param Collator $coll Collator object.
- * @param array $arr Array of strings to sort.
- * @param int $sort_flags Optional sorting type, one of the following:
- * - SORT_REGULAR - compare items normally (don't change types)
- * - SORT_NUMERIC - compare items numerically
- * - SORT_STRING - compare items as strings
- * Default sorting type is SORT_REGULAR.
- *
- * @return bool true on success or false on failure.
- */
- function collator_sort( $coll, $arr, $sort_flags ) {}
- /**
- * Sort array maintaining index association.
- *
- * @param Collator $coll Collator object.
- * @param array $arr Array of strings to sort.
- * @param int $sort_flags Optional sorting type.
- *
- * @return bool true on success or false on failure.
- *
- * @see collator_sort()
- */
- function collator_asort( $coll, $arr, $sort_flags ) {}
- /**
- * Sort array using specified collator.
- *
- * Similar to collator_sort().
- * Uses ICU ucol_getSortKey() to gain more speed on large arrays.
- *
- * @param Collator $coll Collator object.
- * @param array $arr Array of strings to sort
- *
- * @return bool true on success or false on failure.
- */
- function collator_sort_with_sort_keys( $coll, $arr ) {}
- /**
- * Get the locale name of the collator.
- *
- * @param Collator $coll Collator object.
- * @param int $type You can choose between valid and
- * actual locale
- * (ULOC_VALID_LOCALE, ULOC_ACTUAL_LOCALE
- * respectively).
- *
- * @return string Real locale name from which the
- * collation data comes. If the collator
- * was instantiated from rules or an error occurred,
- * returns false.
- */
- function collator_get_locale( $coll, $type ) {}
- /**
- * Get collation attribute value.
- *
- * @param Collator $coll Collator object.
- * @param int $attr Attribute to get value for.
- *
- * @return int Attribute value, or false on error.
- */
- function collator_get_attribute( $coll, $attr ) {}
- /**
- * Get current collation strength.
- *
- * @param Collator $coll Collator object.
- *
- * @return int Current collation strength, or false on error.
- */
- function collator_get_strength( $coll ) {}
- /**
- * Set collation strength.
- *
- * @param Collator $coll Collator object.
- * @param int $strength Strength to set.
- *
- * @return bool true on success, false otherwise.
- */
- function collator_set_strength( $coll, $strength ) {}
- /**
- * Set collation attribute.
- *
- * @param Collator $coll Collator object.
- * @param int $attr Attribute.
- * @param int $val Attribute value.
- *
- * @return bool true on success, false otherwise.
- */
- function collator_set_attribute( $coll, $attr, $val ) {}
- /**
- * Get collator's last error code.
- *
- * @param Collator $coll Collator object.
- *
- * @return int Error code returned by the last
- * Collator API function call.
- */
- function collator_get_error_code( $coll ) {}
- /**
- * Get text for collator's last error code.
- *
- * @param Collator $coll Collator object.
- *
- * @return string Description of an error occurred in the last
- * Collator API function call.
- */
- function collator_get_error_message( $coll ) {}
|