Skip to content

Commit 6e7fb78

Browse files
committed
Add stubs for MessageFormatter
1 parent c32aaaf commit 6e7fb78

File tree

4 files changed

+155
-78
lines changed

4 files changed

+155
-78
lines changed

ext/intl/msgformat/msgformat.stub.php

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
3+
class MessageFormatter
4+
{
5+
public function __construct(string $locale, string $pattern) {}
6+
7+
/** @return MessageFormatter|null */
8+
public static function create(string $locale, string $pattern) {}
9+
10+
/** @return string|false */
11+
public function format(array $args) {}
12+
13+
/** @return string|false */
14+
public static function formatMessage(string $locale, string $pattern, array $args) {}
15+
16+
/** @return array|false */
17+
public function parse(string $value) {}
18+
19+
/** @return array|false */
20+
public static function parseMessage(string $locale, string $pattern, string $source) {}
21+
22+
/** @return bool */
23+
public function setPattern(string $pattern) {}
24+
25+
/** @return string|false */
26+
public function getPattern() {}
27+
28+
/** @return string|false */
29+
public function getLocale() {}
30+
31+
/** @return int */
32+
public function getErrorCode() {}
33+
34+
/** @return string */
35+
public function getErrorMessage() {}
36+
}
37+
38+
function msgfmt_create(string $locale, string $pattern): ?MessageFormatter {}
39+
40+
/** @return string|false */
41+
function msgfmt_format(MessageFormatter $fmt, array $args): string {}
42+
43+
/** @return string|false */
44+
function msgfmt_format_message(string $locale, string $pattern, array $args) {}
45+
46+
/** @return array|false */
47+
function msgfmt_parse(MessageFormatter $fmt, string $value) {}
48+
49+
/** @return array|false */
50+
function msgfmt_parse_message(string $locale, string $pattern, string $source) {}
51+
52+
function msgfmt_set_pattern(MessageFormatter $fmt, string $pattern): bool {}
53+
54+
/** @return string|false */
55+
function msgfmt_get_pattern(MessageFormatter $fmt) {}
56+
57+
/** @return string|false */
58+
function msgfmt_get_locale(MessageFormatter $fmt) {}
59+
60+
function msgfmt_get_error_code(MessageFormatter $fmt): int {}
61+
62+
function msgfmt_get_error_message(MessageFormatter $fmt): string {}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter___construct, 0, 0, 2)
4+
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
5+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
6+
ZEND_END_ARG_INFO()
7+
8+
#define arginfo_class_MessageFormatter_create arginfo_class_MessageFormatter___construct
9+
10+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_format, 0, 0, 1)
11+
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
12+
ZEND_END_ARG_INFO()
13+
14+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_formatMessage, 0, 0, 3)
15+
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
16+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
17+
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
18+
ZEND_END_ARG_INFO()
19+
20+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_parse, 0, 0, 1)
21+
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
22+
ZEND_END_ARG_INFO()
23+
24+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_parseMessage, 0, 0, 3)
25+
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
26+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
27+
ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0)
28+
ZEND_END_ARG_INFO()
29+
30+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_setPattern, 0, 0, 1)
31+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
32+
ZEND_END_ARG_INFO()
33+
34+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter_getPattern, 0, 0, 0)
35+
ZEND_END_ARG_INFO()
36+
37+
#define arginfo_class_MessageFormatter_getLocale arginfo_class_MessageFormatter_getPattern
38+
39+
#define arginfo_class_MessageFormatter_getErrorCode arginfo_class_MessageFormatter_getPattern
40+
41+
#define arginfo_class_MessageFormatter_getErrorMessage arginfo_class_MessageFormatter_getPattern
42+
43+
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_msgfmt_create, 0, 2, MessageFormatter, 1)
44+
ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
45+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
46+
ZEND_END_ARG_INFO()
47+
48+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_msgfmt_format, 0, 2, IS_STRING, 0)
49+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
50+
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
51+
ZEND_END_ARG_INFO()
52+
53+
#define arginfo_msgfmt_format_message arginfo_class_MessageFormatter_formatMessage
54+
55+
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_parse, 0, 0, 2)
56+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
57+
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
58+
ZEND_END_ARG_INFO()
59+
60+
#define arginfo_msgfmt_parse_message arginfo_class_MessageFormatter_parseMessage
61+
62+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_msgfmt_set_pattern, 0, 2, _IS_BOOL, 0)
63+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
64+
ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
65+
ZEND_END_ARG_INFO()
66+
67+
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_pattern, 0, 0, 1)
68+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
69+
ZEND_END_ARG_INFO()
70+
71+
#define arginfo_msgfmt_get_locale arginfo_msgfmt_get_pattern
72+
73+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_msgfmt_get_error_code, 0, 1, IS_LONG, 0)
74+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
75+
ZEND_END_ARG_INFO()
76+
77+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_msgfmt_get_error_message, 0, 1, IS_STRING, 0)
78+
ZEND_ARG_OBJ_INFO(0, fmt, MessageFormatter, 0)
79+
ZEND_END_ARG_INFO()

ext/intl/msgformat/msgformat_class.c

Lines changed: 12 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include "msgformat_parse.h"
2222
#include "msgformat.h"
2323
#include "msgformat_attr.h"
24+
#include "msgformat_arginfo.h"
2425

2526
#include <zend_exceptions.h>
2627

@@ -91,49 +92,21 @@ zend_object *MessageFormatter_object_clone(zend_object *object)
9192
* 'MessageFormatter' class registration structures & functions
9293
*/
9394

94-
/* {{{ arginfo */
95-
ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter___construct, 0, 0, 2)
96-
ZEND_ARG_INFO(0, locale)
97-
ZEND_ARG_INFO(0, pattern)
98-
ZEND_END_ARG_INFO()
99-
100-
ZEND_BEGIN_ARG_INFO(arginfo_messageformatter_geterrormessage, 0)
101-
ZEND_END_ARG_INFO()
102-
103-
ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_formatmessage, 0, 0, 3)
104-
ZEND_ARG_INFO(0, locale)
105-
ZEND_ARG_INFO(0, pattern)
106-
ZEND_ARG_INFO(0, args)
107-
ZEND_END_ARG_INFO()
108-
109-
ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_format, 0, 0, 1)
110-
ZEND_ARG_INFO(0, args)
111-
ZEND_END_ARG_INFO()
112-
113-
ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_setpattern, 0, 0, 1)
114-
ZEND_ARG_INFO(0, pattern)
115-
ZEND_END_ARG_INFO()
116-
117-
ZEND_BEGIN_ARG_INFO_EX(arginfo_messageformatter_parse, 0, 0, 1)
118-
ZEND_ARG_INFO(0, source)
119-
ZEND_END_ARG_INFO()
120-
/* }}} */
121-
12295
/* {{{ MessageFormatter_class_functions
12396
* Every 'MessageFormatter' class method has an entry in this table
12497
*/
12598
static const zend_function_entry MessageFormatter_class_functions[] = {
126-
PHP_ME( MessageFormatter, __construct, arginfo_messageformatter___construct, ZEND_ACC_PUBLIC )
127-
ZEND_FENTRY( create, ZEND_FN( msgfmt_create ), arginfo_messageformatter___construct, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
128-
PHP_NAMED_FE( format, ZEND_FN( msgfmt_format ), arginfo_messageformatter_format )
129-
ZEND_FENTRY( formatMessage, ZEND_FN( msgfmt_format_message ), arginfo_messageformatter_formatmessage, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
130-
PHP_NAMED_FE( parse, ZEND_FN( msgfmt_parse ), arginfo_messageformatter_parse )
131-
ZEND_FENTRY( parseMessage, ZEND_FN( msgfmt_parse_message ), arginfo_messageformatter_formatmessage, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
132-
PHP_NAMED_FE( setPattern, ZEND_FN( msgfmt_set_pattern ), arginfo_messageformatter_setpattern )
133-
PHP_NAMED_FE( getPattern, ZEND_FN( msgfmt_get_pattern ), arginfo_messageformatter_geterrormessage )
134-
PHP_NAMED_FE( getLocale, ZEND_FN( msgfmt_get_locale ), arginfo_messageformatter_geterrormessage )
135-
PHP_NAMED_FE( getErrorCode, ZEND_FN( msgfmt_get_error_code ), arginfo_messageformatter_geterrormessage )
136-
PHP_NAMED_FE( getErrorMessage, ZEND_FN( msgfmt_get_error_message ), arginfo_messageformatter_geterrormessage )
99+
PHP_ME( MessageFormatter, __construct, arginfo_class_MessageFormatter___construct, ZEND_ACC_PUBLIC )
100+
ZEND_FENTRY( create, ZEND_FN( msgfmt_create ), arginfo_class_MessageFormatter_create, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
101+
PHP_NAMED_FE( format, ZEND_FN( msgfmt_format ), arginfo_class_MessageFormatter_format )
102+
ZEND_FENTRY( formatMessage, ZEND_FN( msgfmt_format_message ), arginfo_class_MessageFormatter_formatMessage, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
103+
PHP_NAMED_FE( parse, ZEND_FN( msgfmt_parse ), arginfo_class_MessageFormatter_parse )
104+
ZEND_FENTRY( parseMessage, ZEND_FN( msgfmt_parse_message ), arginfo_class_MessageFormatter_parseMessage, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC )
105+
PHP_NAMED_FE( setPattern, ZEND_FN( msgfmt_set_pattern ), arginfo_class_MessageFormatter_setPattern )
106+
PHP_NAMED_FE( getPattern, ZEND_FN( msgfmt_get_pattern ), arginfo_class_MessageFormatter_getPattern )
107+
PHP_NAMED_FE( getLocale, ZEND_FN( msgfmt_get_locale ), arginfo_class_MessageFormatter_getLocale )
108+
PHP_NAMED_FE( getErrorCode, ZEND_FN( msgfmt_get_error_code ), arginfo_class_MessageFormatter_getErrorCode )
109+
PHP_NAMED_FE( getErrorMessage, ZEND_FN( msgfmt_get_error_message ), arginfo_class_MessageFormatter_getErrorMessage )
137110
PHP_FE_END
138111
};
139112
/* }}} */

ext/intl/php_intl.c

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
# include "spoofchecker/spoofchecker_main.h"
9494

9595
#include "msgformat/msgformat.h"
96+
#include "msgformat/msgformat_arginfo.h"
9697
#include "common/common_error.h"
9798
#include "common/common_enum.h"
9899

@@ -288,50 +289,12 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_get_locale, 0, 0, 1)
288289
ZEND_ARG_INFO(0, type)
289290
ZEND_END_ARG_INFO()
290291

291-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_create, 0, 0, 2)
292-
ZEND_ARG_INFO(0, locale)
293-
ZEND_ARG_INFO(0, pattern)
294-
ZEND_END_ARG_INFO()
295-
296-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_error_code, 0, 0, 1)
297-
ZEND_ARG_INFO(0, nf)
298-
ZEND_END_ARG_INFO()
299-
300-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_error_message, 0, 0, 1)
301-
ZEND_ARG_INFO(0, coll)
302-
ZEND_END_ARG_INFO()
303-
304-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_format, 0, 0, 2)
305-
ZEND_ARG_INFO(0, nf)
306-
ZEND_ARG_INFO(0, args)
307-
ZEND_END_ARG_INFO()
308-
309-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_format_message, 0, 0, 3)
310-
ZEND_ARG_INFO(0, locale)
311-
ZEND_ARG_INFO(0, pattern)
312-
ZEND_ARG_INFO(0, args)
313-
ZEND_END_ARG_INFO()
314-
315-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_parse, 0, 0, 2)
316-
ZEND_ARG_INFO(0, nf)
317-
ZEND_ARG_INFO(0, source)
318-
ZEND_END_ARG_INFO()
319-
320292
ZEND_BEGIN_ARG_INFO_EX(arginfo_numfmt_parse_message, 0, 0, 3)
321293
ZEND_ARG_INFO(0, locale)
322294
ZEND_ARG_INFO(0, pattern)
323295
ZEND_ARG_INFO(0, source)
324296
ZEND_END_ARG_INFO()
325297

326-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_set_pattern, 0, 0, 2)
327-
ZEND_ARG_INFO(0, mf)
328-
ZEND_ARG_INFO(0, pattern)
329-
ZEND_END_ARG_INFO()
330-
331-
ZEND_BEGIN_ARG_INFO_EX(arginfo_msgfmt_get_locale, 0, 0, 1)
332-
ZEND_ARG_INFO(0, mf)
333-
ZEND_END_ARG_INFO()
334-
335298
ZEND_BEGIN_ARG_INFO_EX(arginfo_idn_to_ascii, 0, 0, 1)
336299
ZEND_ARG_INFO(0, domain)
337300
ZEND_ARG_INFO(0, option)
@@ -597,7 +560,7 @@ static const zend_function_entry intl_functions[] = {
597560
PHP_FE( msgfmt_format, arginfo_msgfmt_format )
598561
PHP_FE( msgfmt_format_message, arginfo_msgfmt_format_message )
599562
PHP_FE( msgfmt_parse, arginfo_msgfmt_parse )
600-
PHP_FE( msgfmt_parse_message, arginfo_numfmt_parse_message )
563+
PHP_FE( msgfmt_parse_message, arginfo_msgfmt_parse_message )
601564
PHP_FE( msgfmt_set_pattern, arginfo_msgfmt_set_pattern )
602565
PHP_FE( msgfmt_get_pattern, arginfo_msgfmt_get_locale )
603566
PHP_FE( msgfmt_get_locale, arginfo_msgfmt_get_locale )

0 commit comments

Comments
 (0)