Add various stubs for Intl

Closes GH-4826
This commit is contained in:
Máté Kocsis 2019-10-14 22:02:22 +02:00
parent a827db24f1
commit c42572970a
No known key found for this signature in database
GPG Key ID: FD055E41728BF310
10 changed files with 389 additions and 169 deletions

View File

@ -0,0 +1,71 @@
<?php
class Collator
{
public function __construct(string $locale) {}
/** @return Collator|null */
public static function create(string $locale) {}
/** @return int|false */
public function compare(string $str1, string $str2) {}
/** @return bool */
public function sort(array &$arr, $sort_flag = Collator::SORT_REGULAR) {}
/** @return bool */
public function sortWithSortKeys(array &$arr) {}
/** @return bool */
public function asort(array &$arr, int $sort_flag = Collator::SORT_REGULAR) {}
/** @return int|false */
public function getAttribute(int $attr) {}
/** @return bool */
public function setAttribute(int $attr, int $val) {}
/** @return int */
public function getStrength() {}
/** @return bool */
public function setStrength(int $strength) {}
/** @return string|false */
public function getLocale(int $type) {}
/** @return int|false */
public function getErrorCode() {}
/** @return string|false */
public function getErrorMessage() {}
/** @return string|false */
public function getSortKey(string $str) {}
}
function collator_create(string $locale): ?Collator {}
function collator_compare(Collator $object, string $str1, string $str2): int|false {}
function collator_get_attribute(Collator $object, int $attr): int|false {}
function collator_set_attribute(Collator $object, int $attr, int $val): bool {}
function collator_get_strength(Collator $object): int {}
function collator_set_strength(Collator $object, int $strength): bool {}
function collator_sort(Collator $object, array &$arr, int $sort_flag = Collator::SORT_REGULAR): bool {}
function collator_sort_with_sort_keys(Collator $object, array &$arr): bool {}
function collator_asort(Collator $object, array &$arr, int $sort_flag = Collator::SORT_REGULAR): bool {}
function collator_get_locale(Collator $object, int $type): string|false {}
function collator_get_error_code(Collator $object): int|false {}
function collator_get_error_message(Collator $object): string|false {}
function collator_get_sort_key(Collator $object, string $str): string|false {}

View File

@ -0,0 +1,115 @@
/* This is a generated file, edit the .stub.php file instead. */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_Collator_create arginfo_class_Collator___construct
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_compare, 0, 0, 2)
ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_sort, 0, 0, 1)
ZEND_ARG_TYPE_INFO(1, arr, IS_ARRAY, 0)
ZEND_ARG_INFO(0, sort_flag)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_sortWithSortKeys, 0, 0, 1)
ZEND_ARG_TYPE_INFO(1, arr, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_asort, 0, 0, 1)
ZEND_ARG_TYPE_INFO(1, arr, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, sort_flag, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_getAttribute, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, attr, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_setAttribute, 0, 0, 2)
ZEND_ARG_TYPE_INFO(0, attr, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, val, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_getStrength, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_setStrength, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, strength, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_getLocale, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_Collator_getErrorCode arginfo_class_Collator_getStrength
#define arginfo_class_Collator_getErrorMessage arginfo_class_Collator_getStrength
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator_getSortKey, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_collator_create, 0, 1, Collator, 1)
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_compare, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_attribute, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, attr, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_set_attribute, 0, 3, _IS_BOOL, 0)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, attr, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, val, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_get_strength, 0, 1, IS_LONG, 0)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_set_strength, 0, 2, _IS_BOOL, 0)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, strength, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_sort, 0, 2, _IS_BOOL, 0)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(1, arr, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO(0, sort_flag, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_sort_with_sort_keys, 0, 2, _IS_BOOL, 0)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(1, arr, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
#define arginfo_collator_asort arginfo_collator_sort
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_locale, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_error_code, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_error_message, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_sort_key, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
ZEND_END_ARG_INFO()

View File

@ -22,6 +22,7 @@
#include "collator_locale.h"
#include "collator_create.h"
#include "collator_error.h"
#include "collator_arginfo.h"
#include "intl_error.h"
#include <unicode/ucol.h>
@ -62,53 +63,25 @@ zend_object *Collator_object_create(zend_class_entry *ce )
* 'Collator' class registration structures & functions
*/
/* {{{ Collator methods arguments info */
/* NOTE: modifying 'collator_XX_args' do not forget to
modify approptiate 'collator_XX_args' for
the procedural API.
*/
ZEND_BEGIN_ARG_INFO_EX( collator_0_args, 0, 0, 0 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( collator_1_arg, 0, 0, 1 )
ZEND_ARG_INFO( 0, arg1 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( collator_2_args, 0, 0, 2 )
ZEND_ARG_INFO( 0, arg1 )
ZEND_ARG_INFO( 0, arg2 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( collator_sort_args, 0, 0, 1 )
ZEND_ARG_ARRAY_INFO( 1, arr, 0 )
ZEND_ARG_INFO( 0, flags )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( collator_sort_with_sort_keys_args, 0, 0, 1 )
ZEND_ARG_ARRAY_INFO( 1, arr, 0 )
ZEND_END_ARG_INFO()
/* }}} */
/* {{{ Collator_class_functions
* Every 'Collator' class method has an entry in this table
*/
static const zend_function_entry Collator_class_functions[] = {
PHP_ME( Collator, __construct, collator_1_arg, ZEND_ACC_PUBLIC )
ZEND_FENTRY( create, ZEND_FN( collator_create ), collator_1_arg, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
PHP_NAMED_FE( compare, ZEND_FN( collator_compare ), collator_2_args )
PHP_NAMED_FE( sort, ZEND_FN( collator_sort ), collator_sort_args )
PHP_NAMED_FE( sortWithSortKeys, ZEND_FN( collator_sort_with_sort_keys ), collator_sort_with_sort_keys_args )
PHP_NAMED_FE( asort, ZEND_FN( collator_asort ), collator_sort_args )
PHP_NAMED_FE( getAttribute, ZEND_FN( collator_get_attribute ), collator_1_arg )
PHP_NAMED_FE( setAttribute, ZEND_FN( collator_set_attribute ), collator_2_args )
PHP_NAMED_FE( getStrength, ZEND_FN( collator_get_strength ), collator_0_args )
PHP_NAMED_FE( setStrength, ZEND_FN( collator_set_strength ), collator_1_arg )
PHP_NAMED_FE( getLocale, ZEND_FN( collator_get_locale ), collator_1_arg )
PHP_NAMED_FE( getErrorCode, ZEND_FN( collator_get_error_code ), collator_0_args )
PHP_NAMED_FE( getErrorMessage, ZEND_FN( collator_get_error_message ), collator_0_args )
PHP_NAMED_FE( getSortKey, ZEND_FN( collator_get_sort_key ), collator_1_arg )
PHP_ME( Collator, __construct, arginfo_class_Collator___construct, ZEND_ACC_PUBLIC )
ZEND_FENTRY( create, ZEND_FN( collator_create ), arginfo_class_Collator_create, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
PHP_NAMED_FE( compare, ZEND_FN( collator_compare ), arginfo_class_Collator_compare )
PHP_NAMED_FE( sort, ZEND_FN( collator_sort ), arginfo_class_Collator_sort )
PHP_NAMED_FE( sortWithSortKeys, ZEND_FN( collator_sort_with_sort_keys ), arginfo_class_Collator_sortWithSortKeys )
PHP_NAMED_FE( asort, ZEND_FN( collator_asort ), arginfo_class_Collator_asort )
PHP_NAMED_FE( getAttribute, ZEND_FN( collator_get_attribute ), arginfo_class_Collator_getAttribute )
PHP_NAMED_FE( setAttribute, ZEND_FN( collator_set_attribute ), arginfo_class_Collator_setAttribute )
PHP_NAMED_FE( getStrength, ZEND_FN( collator_get_strength ), arginfo_class_Collator_getStrength )
PHP_NAMED_FE( setStrength, ZEND_FN( collator_set_strength ), arginfo_class_Collator_setStrength )
PHP_NAMED_FE( getLocale, ZEND_FN( collator_get_locale ), arginfo_class_Collator_getLocale )
PHP_NAMED_FE( getErrorCode, ZEND_FN( collator_get_error_code ), arginfo_class_Collator_getErrorCode )
PHP_NAMED_FE( getErrorMessage, ZEND_FN( collator_get_error_message ), arginfo_class_Collator_getErrorMessage )
PHP_NAMED_FE( getSortKey, ZEND_FN( collator_get_sort_key ), arginfo_class_Collator_getSortKey )
PHP_FE_END
};
/* }}} */

View File

@ -0,0 +1,22 @@
<?php
class IntlIterator implements Iterator
{
public function current() {}
public function key() {}
public function next() {}
public function rewind() {}
public function valid() {}
}
function intl_get_error_code(): int {}
function intl_get_error_message(): string {}
function intl_is_failure(int $error_code): bool {}
function intl_error_name(int $error_code): string {}

View File

@ -0,0 +1,26 @@
/* This is a generated file, edit the .stub.php file instead. */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlIterator_current, 0, 0, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_IntlIterator_key arginfo_class_IntlIterator_current
#define arginfo_class_IntlIterator_next arginfo_class_IntlIterator_current
#define arginfo_class_IntlIterator_rewind arginfo_class_IntlIterator_current
#define arginfo_class_IntlIterator_valid arginfo_class_IntlIterator_current
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intl_get_error_code, 0, 0, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intl_get_error_message, 0, 0, IS_STRING, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intl_is_failure, 0, 1, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO(0, error_code, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intl_error_name, 0, 1, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, error_code, IS_LONG, 0)
ZEND_END_ARG_INFO()

View File

@ -22,6 +22,7 @@
#include <stdio.h>
#include "common_enum.h"
#include "common_arginfo.h"
extern "C" {
#include <zend_interfaces.h>
@ -280,15 +281,12 @@ static PHP_METHOD(IntlIterator, valid)
RETURN_BOOL(ii->iterator->funcs->valid(ii->iterator) == SUCCESS);
}
ZEND_BEGIN_ARG_INFO_EX(ainfo_se_void, 0, 0, 0)
ZEND_END_ARG_INFO()
static const zend_function_entry IntlIterator_class_functions[] = {
PHP_ME(IntlIterator, current, ainfo_se_void, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, key, ainfo_se_void, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, next, ainfo_se_void, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, rewind, ainfo_se_void, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, valid, ainfo_se_void, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, current, arginfo_class_IntlIterator_current, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, key, arginfo_class_IntlIterator_key, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, next, arginfo_class_IntlIterator_next, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, rewind, arginfo_class_IntlIterator_rewind, ZEND_ACC_PUBLIC)
PHP_ME(IntlIterator, valid, arginfo_class_IntlIterator_valid, ZEND_ACC_PUBLIC)
PHP_FE_END
};

View File

@ -31,6 +31,7 @@
#include "collator/collator_locale.h"
#include "collator/collator_create.h"
#include "collator/collator_error.h"
#include "collator/collator_arginfo.h"
#include "converter/converter.h"
@ -76,6 +77,7 @@
#include "transliterator/transliterator.h"
#include "transliterator/transliterator_class.h"
#include "transliterator/transliterator_methods.h"
#include "transliterator/transliterator_arginfo.h"
#include "timezone/timezone_class.h"
#include "timezone/timezone_methods.h"
@ -102,6 +104,7 @@
#include "msgformat/msgformat_arginfo.h"
#include "common/common_error.h"
#include "common/common_enum.h"
#include "common/common_arginfo.h"
#include <unicode/uloc.h>
#include <unicode/uclean.h>
@ -129,40 +132,6 @@ const char *intl_locale_get_default( void )
return INTL_G(default_locale);
}
/* {{{ Arguments info */
ZEND_BEGIN_ARG_INFO_EX(collator_static_0_args, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_static_1_arg, 0, 0, 1)
ZEND_ARG_INFO(0, arg1)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_0_args, 0, 0, 1)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_1_arg, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_INFO(0, arg1)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_2_args, 0, 0, 3)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_INFO(0, arg1)
ZEND_ARG_INFO(0, arg2)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_sort_args, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
ZEND_ARG_ARRAY_INFO(1, arr, 0)
ZEND_ARG_INFO(0, sort_flags)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(collator_sort_with_sort_keys_args, 0, 0, 2)
ZEND_ARG_OBJ_INFO(0, coll, Collator, 0)
ZEND_ARG_ARRAY_INFO(1, arr, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(numfmt_parse_arginfo, 0, 0, 2)
ZEND_ARG_INFO(0, formatter)
ZEND_ARG_INFO(0, string)
@ -177,9 +146,6 @@ ZEND_BEGIN_ARG_INFO_EX(numfmt_parse_currency_arginfo, 0, 0, 3)
ZEND_ARG_INFO(1, position)
ZEND_END_ARG_INFO()
#define intl_0_args collator_static_0_args
#define intl_1_arg collator_static_1_arg
ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_create, 0, 0, 2)
ZEND_ARG_INFO(0, locale)
ZEND_ARG_INFO(0, style)
@ -229,34 +195,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_get_locale, 0, 0, 1)
ZEND_ARG_INFO(0, type)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_void, 0, 0, 0 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create, 0, 0, 1 )
ZEND_ARG_INFO( 0, id )
ZEND_ARG_INFO( 0, direction )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_from_rules, 0, 0, 1 )
ZEND_ARG_INFO( 0, rules )
ZEND_ARG_INFO( 0, direction )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_inverse, 0, 0, 1 )
ZEND_ARG_OBJ_INFO( 0, orig_trans, Transliterator, 0 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_transliterate, 0, 0, 2 )
ZEND_ARG_INFO( 0, trans )
ZEND_ARG_INFO( 0, subject )
ZEND_ARG_INFO( 0, start )
ZEND_ARG_INFO( 0, end )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_error, 0, 0, 1 )
ZEND_ARG_OBJ_INFO( 0, trans, Transliterator, 0 )
ZEND_END_ARG_INFO()
/* }}} */
/* {{{ intl_functions
@ -266,19 +204,19 @@ ZEND_END_ARG_INFO()
static const zend_function_entry intl_functions[] = {
/* collator functions */
PHP_FE( collator_create, collator_static_1_arg )
PHP_FE( collator_compare, collator_2_args )
PHP_FE( collator_get_attribute, collator_1_arg )
PHP_FE( collator_set_attribute, collator_2_args )
PHP_FE( collator_get_strength, collator_0_args )
PHP_FE( collator_set_strength, collator_1_arg )
PHP_FE( collator_sort, collator_sort_args )
PHP_FE( collator_sort_with_sort_keys, collator_sort_with_sort_keys_args )
PHP_FE( collator_asort, collator_sort_args )
PHP_FE( collator_get_locale, collator_1_arg )
PHP_FE( collator_get_error_code, collator_0_args )
PHP_FE( collator_get_error_message, collator_0_args )
PHP_FE( collator_get_sort_key, collator_1_arg )
PHP_FE( collator_create, arginfo_collator_create )
PHP_FE( collator_compare, arginfo_collator_compare )
PHP_FE( collator_get_attribute, arginfo_collator_get_attribute )
PHP_FE( collator_set_attribute, arginfo_collator_set_attribute )
PHP_FE( collator_get_strength, arginfo_collator_get_strength )
PHP_FE( collator_set_strength, arginfo_collator_set_strength )
PHP_FE( collator_sort, arginfo_collator_sort )
PHP_FE( collator_sort_with_sort_keys, arginfo_collator_sort_with_sort_keys )
PHP_FE( collator_asort, arginfo_collator_asort )
PHP_FE( collator_get_locale, arginfo_collator_get_locale )
PHP_FE( collator_get_error_code, arginfo_collator_get_error_code )
PHP_FE( collator_get_error_message, arginfo_collator_get_error_message )
PHP_FE( collator_get_sort_key, arginfo_collator_get_sort_key )
/* formatter functions */
PHP_FE( numfmt_create, arginfo_numfmt_create )
@ -385,11 +323,11 @@ static const zend_function_entry intl_functions[] = {
/* Transliterator functions */
PHP_FE( transliterator_create, arginfo_transliterator_create )
PHP_FE( transliterator_create_from_rules, arginfo_transliterator_create_from_rules )
PHP_FE( transliterator_list_ids, arginfo_transliterator_void )
PHP_FE( transliterator_list_ids, arginfo_transliterator_list_ids )
PHP_FE( transliterator_create_inverse, arginfo_transliterator_create_inverse)
PHP_FE( transliterator_transliterate, arginfo_transliterator_transliterate )
PHP_FE( transliterator_get_error_code, arginfo_transliterator_error )
PHP_FE( transliterator_get_error_message, arginfo_transliterator_error )
PHP_FE( transliterator_get_error_code, arginfo_transliterator_get_error_code )
PHP_FE( transliterator_get_error_message, arginfo_transliterator_get_error_message )
/* TimeZone functions */
PHP_FE( intltz_create_time_zone, arginfo_intltz_create_time_zone )
@ -467,10 +405,10 @@ static const zend_function_entry intl_functions[] = {
PHP_FE( intlgregcal_is_leap_year, arginfo_intlgregcal_is_leap_year )
/* common functions */
PHP_FE( intl_get_error_code, intl_0_args )
PHP_FE( intl_get_error_message, intl_0_args )
PHP_FE( intl_is_failure, intl_1_arg )
PHP_FE( intl_error_name, intl_1_arg )
PHP_FE( intl_get_error_code, arginfo_intl_get_error_code )
PHP_FE( intl_get_error_message, arginfo_intl_get_error_message )
PHP_FE( intl_is_failure, arginfo_intl_is_failure )
PHP_FE( intl_error_name, arginfo_intl_error_name )
PHP_FE_END
};

View File

@ -0,0 +1,42 @@
<?php
class Transliterator
{
final private function __construct() {}
/** @return Transliterator|null */
public static function create(string $id, int $direction = Transliterator::FORWARD) {}
/** @return Transliterator|null */
public static function createFromRules(string $rules, int $direction = Transliterator::FORWARD) {}
/** @return Transliterator|null */
public function createInverse() {}
/** @return array|false */
public static function listIDs() {}
/** @return string|false */
public function transliterate(string $subject, int $start = 0, int $end = -1) {}
/** @return int|false */
public function getErrorCode() {}
/** @return string|false */
public function getErrorMessage() {}
}
function transliterator_create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator {}
function transliterator_create_from_rules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator {}
function transliterator_list_ids(): array|false {}
function transliterator_create_inverse(Transliterator $orig_trans): ?Transliterator {}
/** @param Transliterator|string */
function transliterator_transliterate($transliterator, string $subject, int $start = 0, int $end = -1): string|false {}
function transliterator_get_error_code(Transliterator $trans): int|false {}
function transliterator_get_error_message(Transliterator $trans): string|false {}

View File

@ -0,0 +1,60 @@
/* This is a generated file, edit the .stub.php file instead. */
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator___construct, 0, 0, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_create, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, id, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_createFromRules, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, rules, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_Transliterator_createInverse arginfo_class_Transliterator___construct
#define arginfo_class_Transliterator_listIDs arginfo_class_Transliterator___construct
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_transliterate, 0, 0, 1)
ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
ZEND_END_ARG_INFO()
#define arginfo_class_Transliterator_getErrorCode arginfo_class_Transliterator___construct
#define arginfo_class_Transliterator_getErrorMessage arginfo_class_Transliterator___construct
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_transliterator_create, 0, 1, Transliterator, 1)
ZEND_ARG_TYPE_INFO(0, id, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_transliterator_create_from_rules, 0, 1, Transliterator, 1)
ZEND_ARG_TYPE_INFO(0, rules, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_list_ids, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_transliterator_create_inverse, 0, 1, Transliterator, 1)
ZEND_ARG_OBJ_INFO(0, orig_trans, Transliterator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_transliterate, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_INFO(0, transliterator)
ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_get_error_code, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, trans, Transliterator, 0)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_get_error_message, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
ZEND_ARG_OBJ_INFO(0, trans, Transliterator, 0)
ZEND_END_ARG_INFO()

View File

@ -15,6 +15,7 @@
#include "transliterator_class.h"
#include "php_intl.h"
#include "transliterator_methods.h"
#include "transliterator_arginfo.h"
#include "intl_error.h"
#include "intl_convert.h"
#include "intl_data.h"
@ -254,44 +255,18 @@ static zval *Transliterator_write_property( zend_object *object, zend_string *na
}
/* }}} */
/*
* 'Transliterator' class registration structures & functions
*/
/* {{{ Transliterator methods arguments info */
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_void, 0, 0, 0 )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_create, 0, 0, 1 )
ZEND_ARG_INFO( 0, id )
ZEND_ARG_INFO( 0, direction )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_create_from_rules, 0, 0, 1 )
ZEND_ARG_INFO( 0, rules )
ZEND_ARG_INFO( 0, direction )
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_me_transliterate, 0, 0, 1 )
ZEND_ARG_INFO( 0, subject )
ZEND_ARG_INFO( 0, start )
ZEND_ARG_INFO( 0, end )
ZEND_END_ARG_INFO()
/* }}} */
/* {{{ Transliterator_class_functions
* Every 'Transliterator' class method has an entry in this table
*/
static const zend_function_entry Transliterator_class_functions[] = {
PHP_ME( Transliterator, __construct, ainfo_trans_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL )
PHP_ME_MAPPING( create, transliterator_create, ainfo_trans_create, ZEND_ACC_STATIC |ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( createFromRules,transliterator_create_from_rules, ainfo_trans_create_from_rules, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( createInverse, transliterator_create_inverse, ainfo_trans_void, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( listIDs, transliterator_list_ids, ainfo_trans_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( transliterate, transliterator_transliterate, ainfo_trans_me_transliterate, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( getErrorCode, transliterator_get_error_code, ainfo_trans_void, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( getErrorMessage,transliterator_get_error_message, ainfo_trans_void, ZEND_ACC_PUBLIC )
PHP_ME( Transliterator, __construct, arginfo_class_Transliterator___construct, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL )
PHP_ME_MAPPING( create, transliterator_create, arginfo_class_Transliterator_create, ZEND_ACC_STATIC |ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( createFromRules,transliterator_create_from_rules, arginfo_class_Transliterator_createFromRules, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( createInverse, transliterator_create_inverse, arginfo_class_Transliterator_createInverse, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( listIDs, transliterator_list_ids, arginfo_class_Transliterator_listIDs, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( transliterate, transliterator_transliterate, arginfo_class_Transliterator_transliterate, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( getErrorCode, transliterator_get_error_code, arginfo_class_Transliterator_getErrorCode, ZEND_ACC_PUBLIC )
PHP_ME_MAPPING( getErrorMessage,transliterator_get_error_message, arginfo_class_Transliterator_getErrorMessage, ZEND_ACC_PUBLIC )
PHP_FE_END
};
/* }}} */