php-src/ext/intl/doc/collator_api.php
Stanislav Malyshev 3e74c7848d Merge intl extension to HEAD
# do not use yet in HEAD, needs some adjustment
2008-07-07 23:42:30 +00:00

399 lines
12 KiB
PHP
Executable File

<?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 occured 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 occured,
* 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 occured,
* 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 occured in the last
* Collator API function call.
*/
function collator_get_error_message( $coll ) {}
?>