]> granicus.if.org Git - php/commitdiff
Add ext/xml stubs
authorChristoph M. Becker <cmbecker69@gmx.de>
Tue, 3 Sep 2019 11:04:37 +0000 (13:04 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Tue, 3 Sep 2019 11:07:20 +0000 (13:07 +0200)
ext/xml/xml.c
ext/xml/xml.stub.php [new file with mode: 0644]
ext/xml/xml_arginfo.h [new file with mode: 0644]

index c25b0b2ae3e987435d433877840c701a3fb2812b..d6e91b69ced4bebc31216ede3cc856fbaff1fbb9 100644 (file)
@@ -37,6 +37,8 @@
 #include "ext/libxml/php_libxml.h"
 #endif
 
+#include "xml_arginfo.h"
+
 /* Short-term TODO list:
  * - Implement XML_ExternalEntityParserCreate()
  * - XML_SetCommentHandler
@@ -205,114 +207,6 @@ void _xml_endNamespaceDeclHandler(void *, const XML_Char *);
 /* }}} */
 
 /* {{{ extension definition structures */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
-       ZEND_ARG_INFO(0, encoding)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
-       ZEND_ARG_INFO(0, encoding)
-       ZEND_ARG_INFO(0, sep)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_object, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, obj)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_element_handler, 0, 0, 3)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, shdl)
-       ZEND_ARG_INFO(0, ehdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_character_data_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_processing_instruction_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_default_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_unparsed_entity_decl_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_notation_decl_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_external_entity_ref_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_start_namespace_decl_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_set_end_namespace_decl_handler, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, hdl)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, data)
-       ZEND_ARG_INFO(0, isfinal)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parse_into_struct, 0, 0, 3)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, data)
-       ZEND_ARG_INFO(1, values)
-       ZEND_ARG_INFO(1, index)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_error_code, 0, 0, 1)
-       ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_error_string, 0, 0, 1)
-       ZEND_ARG_INFO(0, code)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_line_number, 0, 0, 1)
-       ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_column_number, 0, 0, 1)
-       ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_get_current_byte_index, 0, 0, 1)
-       ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_free, 0, 0, 1)
-       ZEND_ARG_INFO(0, parser)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_set_option, 0, 0, 3)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, option)
-       ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
-       ZEND_ARG_INFO(0, parser)
-       ZEND_ARG_INFO(0, option)
-ZEND_END_ARG_INFO()
-
 static const zend_function_entry xml_functions[] = {
        PHP_FE(xml_parser_create,                                       arginfo_xml_parser_create)
        PHP_FE(xml_parser_create_ns,                            arginfo_xml_parser_create_ns)
diff --git a/ext/xml/xml.stub.php b/ext/xml/xml.stub.php
new file mode 100644 (file)
index 0000000..873711f
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+/** @return XmlParser|false */
+function xml_parser_create(string $encoding = UNKNOWN) {}
+
+/** @return XmlParser|false */
+function xml_parser_create_ns(string $encoding = UNBEKANNT, string $sep = ':') {}
+
+function xml_set_object(XmlParser $parser, object $obj): bool {}
+
+/**
+ * @param callable $shdl
+ * @param callable $ehdl
+ */
+function xml_set_element_handler(XmlParser $parser, $shdl, $ehdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_character_data_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_processing_instruction_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_default_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_unparsed_entity_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_notation_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_external_entity_ref_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_start_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
+
+/** @param callable $hdl */
+function xml_set_end_namespace_decl_handler(XmlParser $parser, $hdl): bool {}
+
+function xml_parse(XmlParser $parser, string $data, bool $isfinal = false): int {}
+
+function xml_parse_into_struct(XmlParser $parser, string $data, &$values, &$index = UNKNOWN): int {}
+
+function xml_get_error_code(XmlParser $parser): int {}
+
+function xml_error_string(int $code): ?string {}
+
+function xml_get_current_line_number(XmlParser $parser): int {}
+
+function xml_get_current_column_number(XmlParser $parser): int {}
+
+function xml_get_current_byte_index(XmlParser $parser): int {}
+
+function xml_parser_free(XmlParser $parser): bool {}
+
+function xml_parser_set_option(XmlParser $parser, int $option, $value): bool {}
+
+function xml_parser_get_option(XmlParser $parser, int $option) {}
diff --git a/ext/xml/xml_arginfo.h b/ext/xml/xml_arginfo.h
new file mode 100644 (file)
index 0000000..c49779c
--- /dev/null
@@ -0,0 +1,82 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_create_ns, 0, 0, 0)
+       ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, sep, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_object, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_TYPE_INFO(0, obj, IS_OBJECT, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_element_handler, 0, 3, _IS_BOOL, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_INFO(0, shdl)
+       ZEND_ARG_INFO(0, ehdl)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_set_character_data_handler, 0, 2, _IS_BOOL, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_INFO(0, hdl)
+ZEND_END_ARG_INFO()
+
+#define arginfo_xml_set_processing_instruction_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_default_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_unparsed_entity_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_notation_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_external_entity_ref_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_start_namespace_decl_handler arginfo_xml_set_character_data_handler
+
+#define arginfo_xml_set_end_namespace_decl_handler arginfo_xml_set_character_data_handler
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse, 0, 2, IS_LONG, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+       ZEND_ARG_TYPE_INFO(0, isfinal, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parse_into_struct, 0, 3, IS_LONG, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+       ZEND_ARG_INFO(1, values)
+       ZEND_ARG_INFO(1, index)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_get_error_code, 0, 1, IS_LONG, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_error_string, 0, 1, IS_STRING, 1)
+       ZEND_ARG_TYPE_INFO(0, code, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_xml_get_current_line_number arginfo_xml_get_error_code
+
+#define arginfo_xml_get_current_column_number arginfo_xml_get_error_code
+
+#define arginfo_xml_get_current_byte_index arginfo_xml_get_error_code
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_free, 0, 1, _IS_BOOL, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xml_parser_set_option, 0, 3, _IS_BOOL, 0)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+       ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xml_parser_get_option, 0, 0, 2)
+       ZEND_ARG_OBJ_INFO(0, parser, XmlParser, 0)
+       ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ZEND_END_ARG_INFO()