diff options
| author | Máté Kocsis <kocsismate@woohoolabs.com> | 2019-10-14 22:02:22 +0200 |
|---|---|---|
| committer | Máté Kocsis <kocsismate@woohoolabs.com> | 2020-02-04 14:55:21 +0100 |
| commit | c42572970a4c1165df2756f0ec9ac0eafd5d5017 (patch) | |
| tree | d59c268841f6a0737106a79a1a92dd3c5ac068aa | |
| parent | a827db24f1231809b2600a3f0ff233f9c1c01a17 (diff) | |
| download | php-git-c42572970a4c1165df2756f0ec9ac0eafd5d5017.tar.gz | |
Add various stubs for Intl
Closes GH-4826
| -rw-r--r-- | ext/intl/collator/collator.stub.php | 71 | ||||
| -rw-r--r-- | ext/intl/collator/collator_arginfo.h | 115 | ||||
| -rw-r--r-- | ext/intl/collator/collator_class.c | 57 | ||||
| -rw-r--r-- | ext/intl/common/common.stub.php | 22 | ||||
| -rw-r--r-- | ext/intl/common/common_arginfo.h | 26 | ||||
| -rw-r--r-- | ext/intl/common/common_enum.cpp | 14 | ||||
| -rw-r--r-- | ext/intl/php_intl.c | 108 | ||||
| -rw-r--r-- | ext/intl/transliterator/transliterator.stub.php | 42 | ||||
| -rw-r--r-- | ext/intl/transliterator/transliterator_arginfo.h | 60 | ||||
| -rw-r--r-- | ext/intl/transliterator/transliterator_class.c | 43 |
10 files changed, 389 insertions, 169 deletions
diff --git a/ext/intl/collator/collator.stub.php b/ext/intl/collator/collator.stub.php new file mode 100644 index 0000000000..a7ade53b2a --- /dev/null +++ b/ext/intl/collator/collator.stub.php @@ -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 {} diff --git a/ext/intl/collator/collator_arginfo.h b/ext/intl/collator/collator_arginfo.h new file mode 100644 index 0000000000..ba1a18a254 --- /dev/null +++ b/ext/intl/collator/collator_arginfo.h @@ -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() diff --git a/ext/intl/collator/collator_class.c b/ext/intl/collator/collator_class.c index 94e13efab7..2641706114 100644 --- a/ext/intl/collator/collator_class.c +++ b/ext/intl/collator/collator_class.c @@ -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 }; /* }}} */ diff --git a/ext/intl/common/common.stub.php b/ext/intl/common/common.stub.php new file mode 100644 index 0000000000..61a977f660 --- /dev/null +++ b/ext/intl/common/common.stub.php @@ -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 {} diff --git a/ext/intl/common/common_arginfo.h b/ext/intl/common/common_arginfo.h new file mode 100644 index 0000000000..6d1b836354 --- /dev/null +++ b/ext/intl/common/common_arginfo.h @@ -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() diff --git a/ext/intl/common/common_enum.cpp b/ext/intl/common/common_enum.cpp index d94323ba82..446ffad82e 100644 --- a/ext/intl/common/common_enum.cpp +++ b/ext/intl/common/common_enum.cpp @@ -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 }; diff --git a/ext/intl/php_intl.c b/ext/intl/php_intl.c index b7bab203a7..c9a8b5ff97 100644 --- a/ext/intl/php_intl.c +++ b/ext/intl/php_intl.c @@ -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 }; diff --git a/ext/intl/transliterator/transliterator.stub.php b/ext/intl/transliterator/transliterator.stub.php new file mode 100644 index 0000000000..1e96ba66cd --- /dev/null +++ b/ext/intl/transliterator/transliterator.stub.php @@ -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 {} diff --git a/ext/intl/transliterator/transliterator_arginfo.h b/ext/intl/transliterator/transliterator_arginfo.h new file mode 100644 index 0000000000..7061b4b5df --- /dev/null +++ b/ext/intl/transliterator/transliterator_arginfo.h @@ -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() diff --git a/ext/intl/transliterator/transliterator_class.c b/ext/intl/transliterator/transliterator_class.c index 5bed10ed6f..4afc6017c3 100644 --- a/ext/intl/transliterator/transliterator_class.c +++ b/ext/intl/transliterator/transliterator_class.c @@ -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 }; /* }}} */ |
