diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2013-03-14 05:42:27 +0000 |
---|---|---|
committer | <> | 2013-04-03 16:25:08 +0000 |
commit | c4dd7a1a684490673e25aaf4fabec5df138854c4 (patch) | |
tree | 4d57c44caae4480efff02b90b9be86f44bf25409 /ext/intl/doc/formatter_api.php | |
download | php2-master.tar.gz |
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/intl/doc/formatter_api.php')
-rw-r--r-- | ext/intl/doc/formatter_api.php | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/ext/intl/doc/formatter_api.php b/ext/intl/doc/formatter_api.php new file mode 100644 index 0000000..14d98db --- /dev/null +++ b/ext/intl/doc/formatter_api.php @@ -0,0 +1,500 @@ +<?php + +/** + * Number formatter class - locale-dependent number formatting/parsing. + * + * This class represents the ICU number formatting functionality. It allows to display + * number according to the localized format or given pattern or set of rules, and to + * parse strings into numbers according to the above patterns. + * + * Example: + * <code> + * $value = 1234567; + * $formatter = new NumberFormatter("de_DE", NumberFormatter::DECIMAL); + * echo $formatter->format($value); + * </code> + * + * @see http://www.icu-project.org/apiref/icu4c/unum_8h.html + * @see http://www.icu-project.org/apiref/icu4c/classNumberFormat.html + * + * The class would also contain all the constants listed in the following enums: + * UNumberFormatStyle, UNumberFormatRoundingMode, UNumberFormatPadPosition, + * UNumberFormatAttribute, UNumberFormatTextAttribute, UNumberFormatSymbol. + */ +class NumberFormatter { +############################################################################# +# Common constants. +############################################################################# + + /* + * 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 PATTERN_DECIMAL = 'UNUM_PATTERN_DECIMAL'; + * actually means that NumberFormatter::PATTERN_DECIMAL is the same as + * UNUM_PATTERN_DECIMAL constant in the ICU library. + */ + + /* + * These constants define formatter/parser argument type - integer, floating point or currency. + */ + const TYPE_DEFAULT = 'FORMAT_TYPE_DEFAULT'; + const TYPE_INT32 = 'FORMAT_TYPE_INT32'; + const TYPE_INT64 = 'FORMAT_TYPE_INT64'; + const TYPE_DOUBLE = 'FORMAT_TYPE_DOUBLE'; + const TYPE_CURRENCY = 'FORMAT_TYPE_CURRENCY'; + + /* + * UNumberFormatStyle constants + */ + const PATTERN_DECIMAL = 'UNUM_PATTERN_DECIMAL'; + const DECIMAL = 'UNUM_DECIMAL'; + const CURRENCY = 'UNUM_CURRENCY'; + const PERCENT = 'UNUM_PERCENT'; + const SCIENTIFIC = 'UNUM_SCIENTIFIC'; + const SPELLOUT = 'UNUM_SPELLOUT'; + const ORDINAL = 'UNUM_ORDINAL'; + const DURATION = 'UNUM_DURATION'; + const PATTERN_RULEBASED = 'UNUM_PATTERN_RULEBASED'; + const DEFAULT = 'UNUM_DEFAULT'; + const IGNORE = 'UNUM_IGNORE'; + + /* + * UNumberFormatRoundingMode + */ + const ROUND_CEILING = 'UNUM_ROUND_CEILING'; + const ROUND_FLOOR = 'UNUM_ROUND_FLOOR'; + const ROUND_DOWN = 'UNUM_ROUND_DOWN'; + const ROUND_UP = 'UNUM_ROUND_UP'; + const ROUND_HALFEVEN = 'UNUM_ROUND_HALFEVEN'; + const ROUND_HALFDOWN = 'UNUM_ROUND_HALFDOWN'; + const ROUND_HALFUP = 'UNUM_ROUND_HALFUP'; + + /* + * UNumberFormatPadPosition + */ + const PAD_BEFORE_PREFIX = 'UNUM_PAD_BEFORE_PREFIX'; + const PAD_AFTER_PREFIX = 'UNUM_PAD_AFTER_PREFIX'; + const PAD_BEFORE_SUFFIX = 'UNUM_PAD_BEFORE_SUFFIX'; + const PAD_AFTER_SUFFIX = 'UNUM_PAD_AFTER_SUFFIX'; + + /* + * UNumberFormatAttribute + */ + const PARSE_INT_ONLY = 'UNUM_PARSE_INT_ONLY'; + const GROUPING_USED = 'UNUM_GROUPING_USED'; + const DECIMAL_ALWAYS_SHOWN = 'UNUM_DECIMAL_ALWAYS_SHOWN'; + const MAX_INTEGER_DIGITS = 'UNUM_MAX_INTEGER_DIGITS'; + const MIN_INTEGER_DIGITS = 'UNUM_MIN_INTEGER_DIGITS'; + const INTEGER_DIGITS = 'UNUM_INTEGER_DIGITS'; + const MAX_FRACTION_DIGITS = 'UNUM_MAX_FRACTION_DIGITS'; + const MIN_FRACTION_DIGITS = 'UNUM_MIN_FRACTION_DIGITS'; + const FRACTION_DIGITS = 'UNUM_FRACTION_DIGITS'; + const MULTIPLIER = 'UNUM_MULTIPLIER'; + const GROUPING_SIZE = 'UNUM_GROUPING_SIZE'; + const ROUNDING_MODE = 'UNUM_ROUNDING_MODE'; + const ROUNDING_INCREMENT = 'UNUM_ROUNDING_INCREMENT'; + const FORMAT_WIDTH = 'UNUM_FORMAT_WIDTH'; + const PADDING_POSITION = 'UNUM_PADDING_POSITION'; + const SECONDARY_GROUPING_SIZE = 'UNUM_SECONDARY_GROUPING_SIZE'; + const SIGNIFICANT_DIGITS_USED = 'UNUM_SIGNIFICANT_DIGITS_USED'; + const MIN_SIGNIFICANT_DIGITS = 'UNUM_MIN_SIGNIFICANT_DIGITS'; + const MAX_SIGNIFICANT_DIGITS = 'UNUM_MAX_SIGNIFICANT_DIGITS'; + const LENIENT_PARSE = 'UNUM_LENIENT_PARSE'; + + /* + * UNumberFormatTextAttribute + */ + const POSITIVE_PREFIX = 'UNUM_POSITIVE_PREFIX'; + const POSITIVE_SUFFIX = 'UNUM_POSITIVE_SUFFIX'; + const NEGATIVE_PREFIX = 'UNUM_NEGATIVE_PREFIX'; + const NEGATIVE_SUFFIX = 'UNUM_NEGATIVE_SUFFIX'; + const PADDING_CHARACTER = 'UNUM_PADDING_CHARACTER'; + const CURRENCY_CODE = 'UNUM_CURRENCY_CODE'; + const DEFAULT_RULESET = 'UNUM_DEFAULT_RULESET'; + const PUBLIC_RULESETS = 'UNUM_PUBLIC_RULESETS'; + + /* + * UNumberFormatSymbol + */ + const DECIMAL_SEPARATOR_SYMBOL = 'UNUM_DECIMAL_SEPARATOR_SYMBOL'; + const GROUPING_SEPARATOR_SYMBOL = 'UNUM_GROUPING_SEPARATOR_SYMBOL'; + const PATTERN_SEPARATOR_SYMBOL = 'UNUM_PATTERN_SEPARATOR_SYMBOL'; + const PERCENT_SYMBOL = 'UNUM_PERCENT_SYMBOL'; + const ZERO_DIGIT_SYMBOL = 'UNUM_ZERO_DIGIT_SYMBOL'; + const DIGIT_SYMBOL = 'UNUM_DIGIT_SYMBOL'; + const MINUS_SIGN_SYMBOL = 'UNUM_MINUS_SIGN_SYMBOL'; + const PLUS_SIGN_SYMBOL = 'UNUM_PLUS_SIGN_SYMBOL'; + const CURRENCY_SYMBOL = 'UNUM_CURRENCY_SYMBOL'; + const INTL_CURRENCY_SYMBOL = 'UNUM_INTL_CURRENCY_SYMBOL'; + const MONETARY_SEPARATOR_SYMBOL = 'UNUM_MONETARY_SEPARATOR_SYMBOL'; + const EXPONENTIAL_SYMBOL = 'UNUM_EXPONENTIAL_SYMBOL'; + const PERMILL_SYMBOL = 'UNUM_PERMILL_SYMBOL'; + const PAD_ESCAPE_SYMBOL = 'UNUM_PAD_ESCAPE_SYMBOL'; + const INFINITY_SYMBOL = 'UNUM_INFINITY_SYMBOL'; + const NAN_SYMBOL = 'UNUM_NAN_SYMBOL'; + const SIGNIFICANT_DIGIT_SYMBOL = 'UNUM_SIGNIFICANT_DIGIT_SYMBOL'; + const MONETARY_GROUPING_SEPARATOR_SYMBOL = 'UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL'; + + /** + * Create a number formatter + * + * Creates a number formatter from locale and pattern. This formatter would be used to + * format or parse numbers. + * + * @param integer $style Style of the formatting, one of the UNumberFormatStyle constants + * @param string $locale Locale in which the number would be formatted + * @param [string] $pattern Pattern string in case chose style requires pattern + * @return NumberFormatter + */ + public function __construct($locale, $style, $pattern = null) {} + + /** + * Create a number formatter + * + * Creates a number formatter from locale and pattern. This formatter would be used to + * format or parse numbers. + * + * This method is useful when you prefer just to get null on error, + * as if you called numfmt_create(). + * + * @param integer $style Style of the formatting, one of the UNumberFormatStyle constants + * @param string $locale Locale in which the number would be formatted + * @param [string] $pattern Pattern string in case chose style requires pattern + * @return NumberFormatter + * @see __construct + * @see numfmt_create + */ + public static function create($locale, $style, $pattern = null) {} + + /** + * Format a number according to current formatting rules. + * + * If the type is not specified, the type is derived from the $number parameter. I.e., if it's + * integer then INT32 would be chosen on 32-bit, INT64 on 64-bit, if it's double, DOUBLE would be + * chosen. It is possible to format 64-bit number on 32-bit machine by passing it as double and using + * TYPE_INT64. + * When formatting currency, default formatter's currency code is used. + * + * @param integer|double $number Number to format + * @param [integer] $type Type of the formatting - one of TYPE constants. If not specified, default for the type. + * @return string formatted number + */ + public function format($number, $type = 0) {} + + /** + * Parse a number according to current formatting rules. + * + * @param string $string String to parse + * @param [integer] $type Type of the formatting - one of TYPE constants. + * TYPE_DOUBLE is used by default. + * @param [integer] $position On input, the position to start parsing, default is 0; + * on output, moved to after the last successfully parse character; + * on parse failure, does not change. + * @return integer|double|false Parsed number, false if parsing failed + */ + public function parse($string, $type, &$position) {} + + /** + * Format number as currency. + * + * Uses user-defined currency string. + * + * @param double $number Number to format + * @param string $currency 3-letter currency code (ISO 4217) to use in format + */ + public function formatCurrency($number, $currency) {} + + /** + * Parse currency string + * + * This parser would use parseCurrency API string to parse currency string. The format is defined by the + * formatter, returns both number and currency code. + * + * @param string $string String to parse + * @param string $currency Parameter to return parsed currency code + * @param [integer] $position On input, the position within text to match, default is 0; + * on output, the position after the last matched character; + * on parse failure, does not change. + * @return double currency number + */ + public function parseCurrency($string, &$currency, &$position) {} + + /** + * Set formatter attribute. + * + * This function is used to set any of the formatter attributes. Example: + * + * $formatter->setAttribute(NumberFormat::FORMAT_WIDTH, 10); + * + * @param integer $attr One of UNumberFormatAttribute constants + * @param integer|double $value Value of the attribute + * @return false if attribute is unknown or can not be set, true otherwise + */ + public function setAttribute($attr, $value) {} + /** + * Set formatter attribute. + * + * This function is used to set any of the formatter attributes. Example: + * + * $formatter->setTextAttribute(NumberFormat::POSITIVE_PREFIX, "+"); + * + * @param integer $attr One of UNumberFormatTextAttribute constants + * @param string $value Value of the attribute + * @return false if attribute is unknown or can not be set, true otherwise + */ + public function setTextAttribute($attr, $value) {} + /** + * Set formatting symbol. + * + * Example: + * + * $formatter->setSymbol(NumberFormat::EXPONENTIAL_SYMBOL, "E"); + * + * @param integer|array $attr One of UNumberFormatSymbol constants or array of symbols, indexed by + * these constants + * @param string $value Value of the symbol + */ + public function setSymbol($attr, $value) {} + /** + * Set pattern used by the formatter + * + * Valid only if the formatter is using pattern and is not rule-based. + * @see http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html + * Localized patterns are not currently supported. + * + * @param string $pattern The pattern to be used. + * @return boolean false if formatter pattern could not be set, true otherwise + */ + public function setPattern($pattern) {} + /** + * Get value of the formatter attribute + * + * @param integer $attr One of UNumberFormatAttribute constants + * @return integer|double value of the attribute or false if the value can not be obtained + */ + public function getAttribute($attr) {} + /** + * Get value of the formatter attribute + * + * @param integer $attr One of UNumberFormatTextAttribute constants + * @return string value of the attribute or false if the value can not be obtained + */ + public function getTextAttribute($attr) {} + /** + * Get value of the formatter symbol + * + * @param integer $attr One of UNumberFormatSymbol constants specifying the symbol + * @return string|false The symbol value, or false if the value can not be obtained + */ + public function getSymbol($attr) {} + /** + * Get pattern used by the formatter. + * + * Gets current state of the formatter as a pattern. + * Localized patterns are not currently supported. + * + * Valid only if the formatter is UNUM_PATTERN_DECIMAL + * @return string|false The pattern used by the formatter or false if formatter is of a type + * that does not support patterns. + */ + public function getPattern() {} + /** + * Get the locale for which the formatter was created. + * + * @param [integer] $type One of ULocDataLocaleType values + * @return string locale name + */ + public function getLocale($type = 0) {} + /** + * Get the error code from last operation + * + * Returns error code from the last number formatting operation. + * + * @return integer the error code, one of UErrorCode values. Initial value is U_ZERO_ERROR. + */ + public function getErrorCode() {} + /** + * Get the error text from the last operation. + * + * @return string Description of the last occurred error. + */ + public public function getErrorMessage() {} + +} + +/** Now the same as procedural API */ + +/** + * Create a number formatter + * + * Creates a number formatter from locale and pattern. This formatter would be used to + * format or parse numbers. + * + * @param string $locale Locale in which the number would be formatted + * @param integer $style Style of the formatting, one of the UNumberFormatStyle constants + * @param [string] $pattern Pattern string in case chose style requires pattern + * @return Numberformatter resource NumberFormatter + */ +function numfmt_create($locale, $style, $pattern = null) {} +/** + * Format a number according to current formatting rules. + * + * If the type is not specified, the type is derived from the $number parameter. I.e., if it's + * integer then INT32 would be chosen on 32-bit, INT64 on 64-bit, if it's double, DOUBLE would be + * chosen. It is possible to format 64-bit number on 32-bit machine by passing it as double and using + * TYPE_INT64. + * + * @param NumberFormatter $formatter The formatter resource + * @param integer|double $number Number to format + * @param [integer] $type Type of the formatting - one of TYPE constants. If not specified, default for the type. + * @return string formatted number + */ +function numfmt_format($formatter, $number, $type = null) {} +/** + * Parse a number according to current formatting rules. + * + * This parser uses DOUBLE type by default. When parsing currency, + * default currency definitions are used. + * + * @param NumberFormatter $formatter The formatter resource + * @param string $string String to parse + * @param [integer] $type Type of the formatting - one of TYPE constants. + * @param [integer] $position String position after the end of parsed data. + * @return integer|double|false Parsed number, false if parsing failed + */ +function numfmt_parse($formatter, $string, $type, &$position) {} +/** + * Format number as currency. + * + * Uses user-defined currency string. + * + * @param NumberFormatter $formatter The formatter resource + * @param double $number Number to format + * @param string $currency 3-letter currency code (ISO 4217) to use in format + */ +function numfmt_format_currency($formatter, $number, $currency) {} +/** + * Parse currency string + * + * This parser would use parseCurrency API string to parse currency string. The format is defined by the + * formatter, returns both number and currency code. + * + * @param NumberFormatter $formatter The formatter resource + * @param string $string String to parse + * @param string $currency Parameter to return parsed currency code + * @param [integer] $position String position after the end of parsed data. + * @return double currency number + */ +function numfmt_parse_currency($formatter, $string, &$currency, &$position) {} +/** + * Set formatter attribute. + * + * This function is used to set any of the formatter attributes. Example: + * + * numfmt_format_set_attribute($formatter, NumberFormat::FORMAT_WIDTH, 10); + * + * @param NumberFormatter $formatter The formatter resource + * @param integer $attr One of UNumberFormatAttribute constants + * @param integer|double $value Value of the attribute + * @return false if attribute is unknown or can not be set, true otherwise + */ +function numfmt_set_attribute($formatter, $attribute, $value) {} +/** + * Set formatter attribute. + * + * This function is used to set any of the formatter attributes. Example: + * + * numfmt_format_set_text_attribute($formatter, NumberFormat::POSITIVE_PREFIX, "+"); + * + * @param NumberFormatter $formatter The formatter resource + * @param integer $attr One of UNumberFormatTextAttribute constants + * @param string $value Value of the attribute + * @return false if attribute is unknown or can not be set, true otherwise + */ +function numfmt_set_text_attribute($formatter, $attribute, $value) {} +/** + * Set formatting symbol. + * + * Example: + * + * $formatter->setSymbol(NumberFormat::EXPONENTIAL_SYMBOL, "E"); + * + * @param NumberFormatter $formatter The formatter resource + * @param integer|array $attr One of UNumberFormatSymbol constants or array of symbols, + * indexed by these constants + * @param string $value Value of the symbol + */ +function numfmt_set_symbol($formatter, $attribute, $value) {} +/** + * Set pattern used by the formatter + * + * Valid only if the formatter is using pattern and is not rule-based. + * @see http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html + * Localized patterns are not currently supported. + * + * @param NumberFormatter $formatter The formatter resource + * @param string $pattern The pattern to be used. + * @return boolean false if formatter pattern could not be set, true otherwise + */ +function numfmt_set_pattern($formatter, $pattern) {} +/** + * Get value of the formatter attribute + * + * @param NumberFormatter $formatter The formatter resource + * @param integer $attribute One of UNumberFormatAttribute constants + * @return integer|double value of the attribute or false if the value can not be obtained + */ +function numfmt_get_attribute($formatter, $attribute) {} +/** + * Get value of the formatter attribute + * + * @param NumberFormatter $formatter The formatter resource + * @param integer $attribute One of UNumberFormatTextAttribute constants + * @return string value of the attribute or false if the value can not be obtained + */ +function numfmt_get_text_attribute($formatter, $attribute) {} +/** + * Get value of the formatter symbol + * + * @param NumberFormatter $formatter The formatter resource + * @param integer $attribute One of UNumberFormatSymbol constants specifying the symbol + * @return string|false The symbol value, or false if the value can not be obtained + */ +function numfmt_get_symbol($formatter, $attribute) {} +/** + * Get pattern used by the formatter. + * + * Gets current state of the formatter as a pattern. + * Localized patterns are not currently supported. + * + * Valid only if the formatter is UNUM_PATTERN_DECIMAL + * @param NumberFormatter $formatter The formatter resource + * @return string|false The pattern used by the formatter or false if formatter is of a type + * that does not support patterns. + */ +function numfmt_get_pattern($formatter) {} +/** + * Get the locale for which the formatter was created. + * + * @param NumberFormatter $formatter The formatter resource + * @param [integer] $type One of ULocDataLocaleType values + * @return string locale name + */ +function numfmt_get_locale($formatter, $type = 0) {} +/** + * Get the error code from last operation + * + * Returns error code from the last number formatting operation. + * + * @param NumberFormatter $formatter The formatter resource + * @return integer the error code, one of UErrorCode values. Initial value is U_ZERO_ERROR. + */ +function numfmt_get_error_code($formatter) {} +/** + * Get the error text from the last operation. + * + * @param NumberFormatter $formatter The formatter resource + * @return string Description of the last occurred error. + */ +function numfmt_get_error_message($formatter) {} |