Skip to content

Commit 7e8b3dd

Browse files
committed
Add ext/xml stubs
1 parent 9d4a9ad commit 7e8b3dd

File tree

3 files changed

+143
-108
lines changed

3 files changed

+143
-108
lines changed

ext/xml/xml.c

Lines changed: 2 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
#include "ext/libxml/php_libxml.h"
3838
#endif
3939

40+
#include "xml_arginfo.h"
41+
4042
/* Short-term TODO list:
4143
* - Implement XML_ExternalEntityParserCreate()
4244
* - XML_SetCommentHandler
@@ -205,114 +207,6 @@ void _xml_endNamespaceDeclHandler(void *, const XML_Char *);
205207
/* }}} */
206208

207209
/* {{{ extension definition structures */
208-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
209-
ZEND_ARG_INFO(0, encoding)
210-
ZEND_END_ARG_INFO()
211-
212-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
213-
ZEND_ARG_INFO(0, encoding)
214-
ZEND_ARG_INFO(0, sep)
215-
ZEND_END_ARG_INFO()
216-
217-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_object, 0, 0, 2)
218-
ZEND_ARG_INFO(0, parser)
219-
ZEND_ARG_INFO(0, obj)
220-
ZEND_END_ARG_INFO()
221-
222-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_element_handler, 0, 0, 3)
223-
ZEND_ARG_INFO(0, parser)
224-
ZEND_ARG_INFO(0, shdl)
225-
ZEND_ARG_INFO(0, ehdl)
226-
ZEND_END_ARG_INFO()
227-
228-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_character_data_handler, 0, 0, 2)
229-
ZEND_ARG_INFO(0, parser)
230-
ZEND_ARG_INFO(0, hdl)
231-
ZEND_END_ARG_INFO()
232-
233-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_processing_instruction_handler, 0, 0, 2)
234-
ZEND_ARG_INFO(0, parser)
235-
ZEND_ARG_INFO(0, hdl)
236-
ZEND_END_ARG_INFO()
237-
238-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_default_handler, 0, 0, 2)
239-
ZEND_ARG_INFO(0, parser)
240-
ZEND_ARG_INFO(0, hdl)
241-
ZEND_END_ARG_INFO()
242-
243-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_unparsed_entity_decl_handler, 0, 0, 2)
244-
ZEND_ARG_INFO(0, parser)
245-
ZEND_ARG_INFO(0, hdl)
246-
ZEND_END_ARG_INFO()
247-
248-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_notation_decl_handler, 0, 0, 2)
249-
ZEND_ARG_INFO(0, parser)
250-
ZEND_ARG_INFO(0, hdl)
251-
ZEND_END_ARG_INFO()
252-
253-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_external_entity_ref_handler, 0, 0, 2)
254-
ZEND_ARG_INFO(0, parser)
255-
ZEND_ARG_INFO(0, hdl)
256-
ZEND_END_ARG_INFO()
257-
258-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_start_namespace_decl_handler, 0, 0, 2)
259-
ZEND_ARG_INFO(0, parser)
260-
ZEND_ARG_INFO(0, hdl)
261-
ZEND_END_ARG_INFO()
262-
263-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_end_namespace_decl_handler, 0, 0, 2)
264-
ZEND_ARG_INFO(0, parser)
265-
ZEND_ARG_INFO(0, hdl)
266-
ZEND_END_ARG_INFO()
267-
268-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse, 0, 0, 2)
269-
ZEND_ARG_INFO(0, parser)
270-
ZEND_ARG_INFO(0, data)
271-
ZEND_ARG_INFO(0, isfinal)
272-
ZEND_END_ARG_INFO()
273-
274-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse_into_struct, 0, 0, 3)
275-
ZEND_ARG_INFO(0, parser)
276-
ZEND_ARG_INFO(0, data)
277-
ZEND_ARG_INFO(1, values)
278-
ZEND_ARG_INFO(1, index)
279-
ZEND_END_ARG_INFO()
280-
281-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_error_code, 0, 0, 1)
282-
ZEND_ARG_INFO(0, parser)
283-
ZEND_END_ARG_INFO()
284-
285-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_error_string, 0, 0, 1)
286-
ZEND_ARG_INFO(0, code)
287-
ZEND_END_ARG_INFO()
288-
289-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_line_number, 0, 0, 1)
290-
ZEND_ARG_INFO(0, parser)
291-
ZEND_END_ARG_INFO()
292-
293-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_column_number, 0, 0, 1)
294-
ZEND_ARG_INFO(0, parser)
295-
ZEND_END_ARG_INFO()
296-
297-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_byte_index, 0, 0, 1)
298-
ZEND_ARG_INFO(0, parser)
299-
ZEND_END_ARG_INFO()
300-
301-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_free, 0, 0, 1)
302-
ZEND_ARG_INFO(0, parser)
303-
ZEND_END_ARG_INFO()
304-
305-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_set_option, 0, 0, 3)
306-
ZEND_ARG_INFO(0, parser)
307-
ZEND_ARG_INFO(0, option)
308-
ZEND_ARG_INFO(0, value)
309-
ZEND_END_ARG_INFO()
310-
311-
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
312-
ZEND_ARG_INFO(0, parser)
313-
ZEND_ARG_INFO(0, option)
314-
ZEND_END_ARG_INFO()
315-
316210
static const zend_function_entry xml_functions[] = {
317211
PHP_FE(xml_parser_create, arginfo_xml_parser_create)
318212
PHP_FE(xml_parser_create_ns, arginfo_xml_parser_create_ns)

ext/xml/xml.stub.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
/** @return XmlParser|false */
4+
function xml_parser_create(string $encoding = UNKNOWN) {}
5+
6+
/** @return XmlParser|false */
7+
function xml_parser_create_ns(string $encoding = UNBEKANNT, string $sep = ':') {}
8+
9+
function xml_set_object(XmlParser $parser, object $obj): bool {}
10+
11+
/**
12+
* @param callable $shdl
13+
* @param callable $ehdl
14+
*/
15+
function xml_set_element_handler(XmlParser $parser, $shdl, $ehdl): bool {}
16+
17+
/** @param callable $hdl */
18+
function xml_set_character_data_handler(XmlParser $parser, $hdl): bool {}
19+
20+
/** @param callable $hdl */
21+
function xml_set_processing_instruction_handler(XmlParser $parser, $hdl): bool {}
22+
23+
/** @param callable $hdl */
24+
function xml_set_default_handler(XmlParser $parser, $hdl): bool {}
25+
26+
/** @param callable $hdl */
27+
function xml_set_unparsed_entity_decl_handler(XmlParser $parser, $hdl): bool {}
28+
29+
/** @param callable $hdl */
30+
function xml_set_notation_decl_handler(XmlParser $parser, $hdl): bool {}
31+
32+
/** @param callable $hdl */
33+
function xml_set_external_entity_ref_handler(XmlParser $parser, $hdl): bool {}
34+
35+
/** @param callable $hdl */
36+
function xml_set_start_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
37+
38+
/** @param callable $hdl */
39+
function xml_set_end_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
40+
41+
function xml_parse(XmlParser $parser, string $data, bool $isfinal = false): int {}
42+
43+
function xml_parse_into_struct(XmlParser $parser, string $data, &$values, &$index = UNKNOWN): int {}
44+
45+
function xml_get_error_code(XmlParser $parser): int {}
46+
47+
function xml_error_string(int $code): ?string {}
48+
49+
function xml_get_current_line_number(XmlParser $parser): int {}
50+
51+
function xml_get_current_column_number(XmlParser $parser): int {}
52+
53+
function xml_get_current_byte_index(XmlParser $parser): int {}
54+
55+
function xml_parser_free(XmlParser $parser): bool {}
56+
57+
function xml_parser_set_option(XmlParser $parser, int $option, $value): bool {}
58+
59+
function xml_parser_get_option(XmlParser $parser, int $option) {}

ext/xml/xml_arginfo.h

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
4+
ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
5+
ZEND_END_ARG_INFO()
6+
7+
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
8+
ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
9+
ZEND_ARG_TYPE_INFO(0, sep, IS_STRING, 0)
10+
ZEND_END_ARG_INFO()
11+
12+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_object, 0, 2, _IS_BOOL, 0)
13+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
14+
ZEND_ARG_TYPE_INFO(0, obj, IS_OBJECT, 0)
15+
ZEND_END_ARG_INFO()
16+
17+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_element_handler, 0, 3, _IS_BOOL, 0)
18+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
19+
ZEND_ARG_INFO(0, shdl)
20+
ZEND_ARG_INFO(0, ehdl)
21+
ZEND_END_ARG_INFO()
22+
23+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_character_data_handler, 0, 2, _IS_BOOL, 0)
24+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
25+
ZEND_ARG_INFO(0, hdl)
26+
ZEND_END_ARG_INFO()
27+
28+
#define arginfo_xml_set_processing_instruction_handler arginfo_xml_set_character_data_handler
29+
30+
#define arginfo_xml_set_default_handler arginfo_xml_set_character_data_handler
31+
32+
#define arginfo_xml_set_unparsed_entity_decl_handler arginfo_xml_set_character_data_handler
33+
34+
#define arginfo_xml_set_notation_decl_handler arginfo_xml_set_character_data_handler
35+
36+
#define arginfo_xml_set_external_entity_ref_handler arginfo_xml_set_character_data_handler
37+
38+
#define arginfo_xml_set_start_namespace_decl_handler arginfo_xml_set_character_data_handler
39+
40+
#define arginfo_xml_set_end_namespace_decl_handler arginfo_xml_set_character_data_handler
41+
42+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse, 0, 2, IS_LONG, 0)
43+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
44+
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
45+
ZEND_ARG_TYPE_INFO(0, isfinal, _IS_BOOL, 0)
46+
ZEND_END_ARG_INFO()
47+
48+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse_into_struct, 0, 3, IS_LONG, 0)
49+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
50+
ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
51+
ZEND_ARG_INFO(1, values)
52+
ZEND_ARG_INFO(1, index)
53+
ZEND_END_ARG_INFO()
54+
55+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_get_error_code, 0, 1, IS_LONG, 0)
56+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
57+
ZEND_END_ARG_INFO()
58+
59+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_error_string, 0, 1, IS_STRING, 1)
60+
ZEND_ARG_TYPE_INFO(0, code, IS_LONG, 0)
61+
ZEND_END_ARG_INFO()
62+
63+
#define arginfo_xml_get_current_line_number arginfo_xml_get_error_code
64+
65+
#define arginfo_xml_get_current_column_number arginfo_xml_get_error_code
66+
67+
#define arginfo_xml_get_current_byte_index arginfo_xml_get_error_code
68+
69+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_free, 0, 1, _IS_BOOL, 0)
70+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
71+
ZEND_END_ARG_INFO()
72+
73+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_set_option, 0, 3, _IS_BOOL, 0)
74+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
75+
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
76+
ZEND_ARG_INFO(0, value)
77+
ZEND_END_ARG_INFO()
78+
79+
ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
80+
ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
81+
ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
82+
ZEND_END_ARG_INFO()

0 commit comments

Comments
 (0)