Skip to content

Commit 53ccc32

Browse files
committed
Add stubs for Transliterator
1 parent 87b0f8a commit 53ccc32

File tree

6 files changed

+131
-85
lines changed

6 files changed

+131
-85
lines changed

ext/intl/collator/collator.stub.php

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,13 @@ public function getSortKey(string $str) {}
4646

4747
function collator_create(string $locale): ?Collator {}
4848

49-
/** @return int|false */
50-
function collator_compare(Collator $object, string $str1, string $str2) {}
49+
function collator_compare(Collator $object, string $str1, string $str2): int|false {}
5150

52-
/** @return int|false */
53-
function collator_get_attribute(Collator $object, int $attr) {}
51+
function collator_get_attribute(Collator $object, int $attr): int|false {}
5452

5553
function collator_set_attribute(Collator $object, int $attr, int $val): bool {}
5654

57-
/** @return int|false */
58-
function collator_get_strength(Collator $object) {}
55+
function collator_get_strength(Collator $object): int|false {}
5956

6057
function collator_set_strength(Collator $object, int $strength): bool {}
6158

@@ -65,14 +62,10 @@ function collator_sort_with_sort_keys(Collator $object, array &$arr): bool {}
6562

6663
function collator_asort(Collator $object, array &$arr, int $sort_flag = Collator::SORT_REGULAR): bool {}
6764

68-
/** @return string|false */
69-
function collator_get_locale(Collator $object, int $type) {}
65+
function collator_get_locale(Collator $object, int $type): string|false {}
7066

71-
/** @return int|false */
72-
function collator_get_error_code(Collator $object) {}
67+
function collator_get_error_code(Collator $object): int|false {}
7368

74-
/** @return string|false */
75-
function collator_get_error_message(Collator $object) {}
69+
function collator_get_error_message(Collator $object): string|false {}
7670

77-
/** @return string|false */
78-
function collator_get_sort_key(Collator $object, string $str) {}
71+
function collator_get_sort_key(Collator $object, string $str): string|false {}

ext/intl/collator/collator_arginfo.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_collator_create, 0, 1, Collator,
5757
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
5858
ZEND_END_ARG_INFO()
5959

60-
ZEND_BEGIN_ARG_INFO_EX(arginfo_collator_compare, 0, 0, 3)
60+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_compare, 0, 3, MAY_BE_LONG|MAY_BE_FALSE)
6161
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
6262
ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0)
6363
ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0)
6464
ZEND_END_ARG_INFO()
6565

66-
ZEND_BEGIN_ARG_INFO_EX(arginfo_collator_get_attribute, 0, 0, 2)
66+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_attribute, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
6767
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
6868
ZEND_ARG_TYPE_INFO(0, attr, IS_LONG, 0)
6969
ZEND_END_ARG_INFO()
@@ -74,7 +74,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_collator_set_attribute, 0, 3, _I
7474
ZEND_ARG_TYPE_INFO(0, val, IS_LONG, 0)
7575
ZEND_END_ARG_INFO()
7676

77-
ZEND_BEGIN_ARG_INFO_EX(arginfo_collator_get_strength, 0, 0, 1)
77+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_strength, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
7878
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
7979
ZEND_END_ARG_INFO()
8080

@@ -96,16 +96,18 @@ ZEND_END_ARG_INFO()
9696

9797
#define arginfo_collator_asort arginfo_collator_sort
9898

99-
ZEND_BEGIN_ARG_INFO_EX(arginfo_collator_get_locale, 0, 0, 2)
99+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_locale, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
100100
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
101101
ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
102102
ZEND_END_ARG_INFO()
103103

104104
#define arginfo_collator_get_error_code arginfo_collator_get_strength
105105

106-
#define arginfo_collator_get_error_message arginfo_collator_get_strength
106+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_error_message, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
107+
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
108+
ZEND_END_ARG_INFO()
107109

108-
ZEND_BEGIN_ARG_INFO_EX(arginfo_collator_get_sort_key, 0, 0, 2)
110+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_collator_get_sort_key, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
109111
ZEND_ARG_OBJ_INFO(0, object, Collator, 0)
110112
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
111113
ZEND_END_ARG_INFO()

ext/intl/php_intl.c

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
#include "transliterator/transliterator.h"
7373
#include "transliterator/transliterator_class.h"
7474
#include "transliterator/transliterator_methods.h"
75+
#include "transliterator/transliterator_arginfo.h"
7576

7677
#include "timezone/timezone_class.h"
7778
#include "timezone/timezone_methods.h"
@@ -373,34 +374,6 @@ ZEND_BEGIN_ARG_INFO_EX( arginfo_resourcebundle_get_error_message_proc, 0, 0, 1 )
373374
ZEND_ARG_INFO( 0, bundle )
374375
ZEND_END_ARG_INFO()
375376

376-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_void, 0, 0, 0 )
377-
ZEND_END_ARG_INFO()
378-
379-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create, 0, 0, 1 )
380-
ZEND_ARG_INFO( 0, id )
381-
ZEND_ARG_INFO( 0, direction )
382-
ZEND_END_ARG_INFO()
383-
384-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_from_rules, 0, 0, 1 )
385-
ZEND_ARG_INFO( 0, rules )
386-
ZEND_ARG_INFO( 0, direction )
387-
ZEND_END_ARG_INFO()
388-
389-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_create_inverse, 0, 0, 1 )
390-
ZEND_ARG_OBJ_INFO( 0, orig_trans, Transliterator, 0 )
391-
ZEND_END_ARG_INFO()
392-
393-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_transliterate, 0, 0, 2 )
394-
ZEND_ARG_INFO( 0, trans )
395-
ZEND_ARG_INFO( 0, subject )
396-
ZEND_ARG_INFO( 0, start )
397-
ZEND_ARG_INFO( 0, end )
398-
ZEND_END_ARG_INFO()
399-
400-
ZEND_BEGIN_ARG_INFO_EX( arginfo_transliterator_error, 0, 0, 1 )
401-
ZEND_ARG_OBJ_INFO( 0, trans, Transliterator, 0 )
402-
ZEND_END_ARG_INFO()
403-
404377
ZEND_BEGIN_ARG_INFO_EX( ainfo_cal_create_instance, 0, 0, 0 )
405378
ZEND_ARG_INFO( 0, timeZone )
406379
ZEND_ARG_INFO( 0, locale )
@@ -658,11 +631,11 @@ static const zend_function_entry intl_functions[] = {
658631
/* Transliterator functions */
659632
PHP_FE( transliterator_create, arginfo_transliterator_create )
660633
PHP_FE( transliterator_create_from_rules, arginfo_transliterator_create_from_rules )
661-
PHP_FE( transliterator_list_ids, arginfo_transliterator_void )
634+
PHP_FE( transliterator_list_ids, arginfo_transliterator_list_ids )
662635
PHP_FE( transliterator_create_inverse, arginfo_transliterator_create_inverse)
663636
PHP_FE( transliterator_transliterate, arginfo_transliterator_transliterate )
664-
PHP_FE( transliterator_get_error_code, arginfo_transliterator_error )
665-
PHP_FE( transliterator_get_error_message, arginfo_transliterator_error )
637+
PHP_FE( transliterator_get_error_code, arginfo_transliterator_get_error_code )
638+
PHP_FE( transliterator_get_error_message, arginfo_transliterator_get_error_message )
666639

667640
/* TimeZone functions */
668641
PHP_FE( intltz_create_time_zone, arginfo_intltz_create_time_zone )
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
3+
class Transliterator
4+
{
5+
final private function __construct() {}
6+
7+
/** @return Transliterator|null */
8+
public static function create(string $id, int $direction = Transliterator::FORWARD) {}
9+
10+
/** @return Transliterator|null */
11+
public static function createFromRules(string $rules, int $direction = Transliterator::FORWARD) {}
12+
13+
/** @return Transliterator|null|false */
14+
public function createInverse() {}
15+
16+
/** @return array|false */
17+
public static function listIDs() {}
18+
19+
/** @return string|false */
20+
public function transliterate(string $subject, int $start = 0, int $end = -1) {}
21+
22+
/** @return int|false */
23+
public function getErrorCode() {}
24+
25+
/** @return string|false */
26+
public function getErrorMessage() {}
27+
}
28+
29+
function transliterator_create(string $id, int $direction = Transliterator::FORWARD): ?Transliterator {}
30+
31+
function transliterator_create_from_rules(string $rules, int $direction = Transliterator::FORWARD): ?Transliterator {}
32+
33+
function transliterator_list_ids(): array|false {}
34+
35+
/** @return Transliterator|null|false */
36+
function transliterator_create_inverse(Transliterator $orig_trans) {}
37+
38+
/** @param Transliterator|string */
39+
function transliterator_transliterate($transliterator, string $subject, int $start = 0, int $end = -1): string|false {}
40+
41+
function transliterator_get_error_code(Transliterator $trans): int|false {}
42+
43+
function transliterator_get_error_message(Transliterator $trans): string|false {}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator___construct, 0, 0, 0)
4+
ZEND_END_ARG_INFO()
5+
6+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_create, 0, 0, 1)
7+
ZEND_ARG_TYPE_INFO(0, id, IS_STRING, 0)
8+
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
9+
ZEND_END_ARG_INFO()
10+
11+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_createFromRules, 0, 0, 1)
12+
ZEND_ARG_TYPE_INFO(0, rules, IS_STRING, 0)
13+
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
14+
ZEND_END_ARG_INFO()
15+
16+
#define arginfo_class_Transliterator_createInverse arginfo_class_Transliterator___construct
17+
18+
#define arginfo_class_Transliterator_listIDs arginfo_class_Transliterator___construct
19+
20+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator_transliterate, 0, 0, 1)
21+
ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0)
22+
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
23+
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
24+
ZEND_END_ARG_INFO()
25+
26+
#define arginfo_class_Transliterator_getErrorCode arginfo_class_Transliterator___construct
27+
28+
#define arginfo_class_Transliterator_getErrorMessage arginfo_class_Transliterator___construct
29+
30+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_transliterator_create, 0, 1, Transliterator, 1)
31+
ZEND_ARG_TYPE_INFO(0, id, IS_STRING, 0)
32+
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
33+
ZEND_END_ARG_INFO()
34+
35+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_transliterator_create_from_rules, 0, 1, Transliterator, 1)
36+
ZEND_ARG_TYPE_INFO(0, rules, IS_STRING, 0)
37+
ZEND_ARG_TYPE_INFO(0, direction, IS_LONG, 0)
38+
ZEND_END_ARG_INFO()
39+
40+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_list_ids, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
41+
ZEND_END_ARG_INFO()
42+
43+
ZEND_BEGIN_ARG_INFO_EX(arginfo_transliterator_create_inverse, 0, 0, 1)
44+
ZEND_ARG_OBJ_INFO(0, orig_trans, Transliterator, 0)
45+
ZEND_END_ARG_INFO()
46+
47+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_transliterate, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
48+
ZEND_ARG_INFO(0, transliterator)
49+
ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0)
50+
ZEND_ARG_TYPE_INFO(0, start, IS_LONG, 0)
51+
ZEND_ARG_TYPE_INFO(0, end, IS_LONG, 0)
52+
ZEND_END_ARG_INFO()
53+
54+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_get_error_code, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
55+
ZEND_ARG_OBJ_INFO(0, trans, Transliterator, 0)
56+
ZEND_END_ARG_INFO()
57+
58+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_transliterator_get_error_message, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
59+
ZEND_ARG_OBJ_INFO(0, trans, Transliterator, 0)
60+
ZEND_END_ARG_INFO()

ext/intl/transliterator/transliterator_class.c

Lines changed: 9 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "transliterator_class.h"
1616
#include "php_intl.h"
1717
#include "transliterator_methods.h"
18+
#include "transliterator_arginfo.h"
1819
#include "intl_error.h"
1920
#include "intl_convert.h"
2021
#include "intl_data.h"
@@ -254,44 +255,18 @@ static zval *Transliterator_write_property( zend_object *object, zend_string *na
254255
}
255256
/* }}} */
256257

257-
/*
258-
* 'Transliterator' class registration structures & functions
259-
*/
260-
261-
/* {{{ Transliterator methods arguments info */
262-
263-
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_void, 0, 0, 0 )
264-
ZEND_END_ARG_INFO()
265-
266-
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_create, 0, 0, 1 )
267-
ZEND_ARG_INFO( 0, id )
268-
ZEND_ARG_INFO( 0, direction )
269-
ZEND_END_ARG_INFO()
270-
271-
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_create_from_rules, 0, 0, 1 )
272-
ZEND_ARG_INFO( 0, rules )
273-
ZEND_ARG_INFO( 0, direction )
274-
ZEND_END_ARG_INFO()
275-
276-
ZEND_BEGIN_ARG_INFO_EX( ainfo_trans_me_transliterate, 0, 0, 1 )
277-
ZEND_ARG_INFO( 0, subject )
278-
ZEND_ARG_INFO( 0, start )
279-
ZEND_ARG_INFO( 0, end )
280-
ZEND_END_ARG_INFO()
281-
/* }}} */
282-
283258
/* {{{ Transliterator_class_functions
284259
* Every 'Transliterator' class method has an entry in this table
285260
*/
286261
static const zend_function_entry Transliterator_class_functions[] = {
287-
PHP_ME( Transliterator, __construct, ainfo_trans_void, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL )
288-
PHP_ME_MAPPING( create, transliterator_create, ainfo_trans_create, ZEND_ACC_STATIC |ZEND_ACC_PUBLIC )
289-
PHP_ME_MAPPING( createFromRules,transliterator_create_from_rules, ainfo_trans_create_from_rules, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
290-
PHP_ME_MAPPING( createInverse, transliterator_create_inverse, ainfo_trans_void, ZEND_ACC_PUBLIC )
291-
PHP_ME_MAPPING( listIDs, transliterator_list_ids, ainfo_trans_void, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
292-
PHP_ME_MAPPING( transliterate, transliterator_transliterate, ainfo_trans_me_transliterate, ZEND_ACC_PUBLIC )
293-
PHP_ME_MAPPING( getErrorCode, transliterator_get_error_code, ainfo_trans_void, ZEND_ACC_PUBLIC )
294-
PHP_ME_MAPPING( getErrorMessage,transliterator_get_error_message, ainfo_trans_void, ZEND_ACC_PUBLIC )
262+
PHP_ME( Transliterator, __construct, arginfo_class_Transliterator___construct, ZEND_ACC_PRIVATE | ZEND_ACC_FINAL )
263+
PHP_ME_MAPPING( create, transliterator_create, arginfo_class_Transliterator_create, ZEND_ACC_STATIC |ZEND_ACC_PUBLIC )
264+
PHP_ME_MAPPING( createFromRules,transliterator_create_from_rules, arginfo_class_Transliterator_createFromRules, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
265+
PHP_ME_MAPPING( createInverse, transliterator_create_inverse, arginfo_class_Transliterator_createInverse, ZEND_ACC_PUBLIC )
266+
PHP_ME_MAPPING( listIDs, transliterator_list_ids, arginfo_class_Transliterator_listIDs, ZEND_ACC_STATIC | ZEND_ACC_PUBLIC )
267+
PHP_ME_MAPPING( transliterate, transliterator_transliterate, arginfo_class_Transliterator_transliterate, ZEND_ACC_PUBLIC )
268+
PHP_ME_MAPPING( getErrorCode, transliterator_get_error_code, arginfo_class_Transliterator_getErrorCode, ZEND_ACC_PUBLIC )
269+
PHP_ME_MAPPING( getErrorMessage,transliterator_get_error_message, arginfo_class_Transliterator_getErrorMessage, ZEND_ACC_PUBLIC )
295270
PHP_FE_END
296271
};
297272
/* }}} */

0 commit comments

Comments
 (0)