Add ext/xml stubs

This commit is contained in:
Christoph M. Becker 2019-09-03 13:04:37 +02:00
parent 9d4a9ad0c7
commit 7e8b3dd542
3 changed files with 143 additions and 108 deletions

View 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)

59
ext/xml/xml.stub.php Normal file
View file

@ -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) {}

82
ext/xml/xml_arginfo.h Normal file
View file

@ -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()