mirror of
https://github.com/php/php-src.git
synced 2025-08-15 13:38:49 +02:00
[RFC] Deprecate xml_parser_free() (#19449)
https://wiki.php.net/rfc/deprecations_php_8_5
This commit is contained in:
parent
65c961436d
commit
4de2ec3895
33 changed files with 29 additions and 38 deletions
|
@ -11,7 +11,6 @@ function boom()
|
|||
$thing = new Thing();
|
||||
xml_set_object($reader, $thing);
|
||||
die("ok\n");
|
||||
xml_parser_free($reader);
|
||||
}
|
||||
boom();
|
||||
?>
|
||||
|
|
|
@ -30,7 +30,6 @@ function parseXML2($xml) {
|
|||
function parseXML3($xml) {
|
||||
$p = xml_parser_create();
|
||||
xml_parse_into_struct($p, $xml, $vals, $index);
|
||||
xml_parser_free($p);
|
||||
return var_export($vals, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ $parser = xml_parser_create_ns("ISO-8859-1","@");
|
|||
xml_set_element_handler($parser,'start_elem','end_elem');
|
||||
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
|
||||
xml_parse($parser, $xml);
|
||||
xml_parser_free($parser);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(24) "http://example.com/foo@a"
|
||||
|
|
|
@ -7,7 +7,6 @@ xml
|
|||
$sample = "<?xml version=\"1.0\"?><test attr=\"angle<bracket\"/>";
|
||||
$parser = xml_parser_create();
|
||||
$res = xml_parse_into_struct($parser,$sample,$vals,$index);
|
||||
xml_parser_free($parser);
|
||||
var_dump($vals);
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -69,5 +69,4 @@ foreach ($xmls as $desc => $xml) {
|
|||
xml_set_character_data_handler($xml_parser, "characterData");
|
||||
if (!xml_parse($xml_parser, $xml, true))
|
||||
echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n";
|
||||
xml_parser_free($xml_parser);
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ function x_default_handler($xp,$data)
|
|||
$xp = xml_parser_create();
|
||||
xml_set_default_handler($xp,'x_default_handler');
|
||||
xml_parse($xp, '<root></root>',TRUE);
|
||||
xml_parser_free($xp);
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -14,7 +14,6 @@ XML;
|
|||
|
||||
$parser = xml_parser_create();
|
||||
xml_parse_into_struct($parser, $xml, $vals);
|
||||
xml_parser_free($parser);
|
||||
var_dump($vals);
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -24,7 +24,6 @@ END_OF_XML;
|
|||
$parser = xml_parser_create_ns('UTF-8');
|
||||
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
|
||||
$result = xml_parse_into_struct($parser, $data, $vals, $index);
|
||||
xml_parser_free($parser);
|
||||
var_dump($vals);
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -25,7 +25,6 @@ $parser = xml_parser_create_ns("ISO-8859-1","@");
|
|||
xml_set_default_handler($parser,'defaultfunc');
|
||||
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
|
||||
xml_parse($parser, $xml);
|
||||
xml_parser_free($parser);
|
||||
?>
|
||||
--EXPECTF--
|
||||
<a xmlns="http://example.com/foo"%axmlns:bar="http://example.com/bar">
|
||||
|
|
|
@ -21,7 +21,6 @@ echo 'Index array' . PHP_EOL;
|
|||
print_r($index);
|
||||
echo 'Vals array' . PHP_EOL;
|
||||
print_r($vals);
|
||||
xml_parser_free($xml_parser);
|
||||
|
||||
function startElement($parser, $name, $attribs) { echo $name . PHP_EOL; }
|
||||
function endElement($parser, $name) { echo $name . PHP_EOL; }
|
||||
|
@ -29,7 +28,6 @@ $xml_parser = xml_parser_create();
|
|||
xml_set_element_handler($xml_parser, 'startElement', 'endElement');
|
||||
xml_parser_set_option($xml_parser, XML_OPTION_SKIP_TAGSTART, 4);
|
||||
xml_parse($xml_parser, $XML);
|
||||
xml_parser_free($xml_parser);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -22,8 +22,6 @@ function parse($tagstart) {
|
|||
|
||||
xml_parser_set_option($xml_parser, XML_OPTION_SKIP_TAGSTART, $tagstart);
|
||||
xml_parse($xml_parser, $xml);
|
||||
|
||||
xml_parser_free($xml_parser);
|
||||
}
|
||||
|
||||
parse(3015809298423721);
|
||||
|
|
|
@ -33,4 +33,6 @@ $xml_parser->free();
|
|||
===DONE===
|
||||
--EXPECTF--
|
||||
Deprecated: Function xml_set_object() is deprecated since 8.4, provide a proper method callable to xml_set_*_handler() functions in %s on line %d
|
||||
|
||||
Deprecated: Function xml_parser_free() is deprecated since 8.5, as it has no effect since PHP 8.0 in %s on line %d
|
||||
===DONE===
|
||||
|
|
|
@ -27,5 +27,6 @@ $object->test();
|
|||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECT--
|
||||
--EXPECTF--
|
||||
Deprecated: Function xml_parser_free() is deprecated since 8.5, as it has no effect since PHP 8.0 in %s on line %d
|
||||
===DONE===
|
||||
|
|
|
@ -42,21 +42,18 @@ echo "Both handlers are trampolines:\n";
|
|||
$parser = xml_parser_create();
|
||||
xml_set_element_handler($parser, $startCallback, $endCallback);
|
||||
xml_parse($parser, $xml, true);
|
||||
xml_parser_free($parser);
|
||||
|
||||
echo "\nStart handler is trampoline, end handler method string:\n";
|
||||
$parser = xml_parser_create();
|
||||
xml_set_object($parser, $customParser);
|
||||
xml_set_element_handler($parser, $startCallback, 'endHandler');
|
||||
xml_parse($parser, $xml, true);
|
||||
xml_parser_free($parser);
|
||||
|
||||
echo "\nEnd handler is trampoline, start handler method string:\n";
|
||||
$parser = xml_parser_create();
|
||||
xml_set_object($parser, $customParser);
|
||||
xml_set_element_handler($parser, 'startHandler', $endCallback);
|
||||
xml_parse($parser, $xml, true);
|
||||
xml_parser_free($parser);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
|
|
@ -36,7 +36,6 @@ try {
|
|||
} catch (\Throwable $e) {
|
||||
echo $e::class, ': ', $e->getMessage(), PHP_EOL;
|
||||
}
|
||||
xml_parser_free($parser);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -24,7 +24,6 @@ HERE;
|
|||
$parser = xml_parser_create();
|
||||
xml_set_processing_instruction_handler($parser, $callback);
|
||||
xml_parse($parser, $xml, true);
|
||||
xml_parser_free($parser);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -30,7 +30,6 @@ while ($data = fread($fp, 4096)) {
|
|||
}
|
||||
}
|
||||
print "parse complete\n";
|
||||
xml_parser_free($xml_parser);
|
||||
|
||||
function startElement($parser, $name, $attribs)
|
||||
{
|
||||
|
|
|
@ -72,7 +72,6 @@ while ($data = fread($fp, 4096)) {
|
|||
}
|
||||
}
|
||||
print "parse complete\n";
|
||||
xml_parser_free($xml_parser);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -71,7 +71,6 @@ while ($data = fread($fp, 4096)) {
|
|||
}
|
||||
}
|
||||
print "parse complete\n";
|
||||
xml_parser_free($xml_parser);
|
||||
?>
|
||||
--EXPECT--
|
||||
{?[<?xml version="1.0" encoding="ISO-8859-1"?>]}{?[
|
||||
|
|
|
@ -13,7 +13,6 @@ $fp = fopen("xmltest.xml", "r");
|
|||
while ($data = fread($fp, 4096)) {
|
||||
xml_parse($xp, $data, feof($fp));
|
||||
}
|
||||
xml_parser_free($xp);
|
||||
$xp = xml_parser_create();
|
||||
xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, true);
|
||||
xml_set_element_handler($xp, "start_element", "end_element");
|
||||
|
@ -21,7 +20,6 @@ $fp = fopen("xmltest.xml", "r");
|
|||
while ($data = fread($fp, 4096)) {
|
||||
xml_parse($xp, $data, feof($fp));
|
||||
}
|
||||
xml_parser_free($xp);
|
||||
|
||||
function start_element($xp, $elem, $attribs)
|
||||
{
|
||||
|
|
|
@ -28,7 +28,6 @@ $parser = xml_parser_create_ns("ISO-8859-1","@");
|
|||
xml_set_element_handler($parser,'start_elem','end_elem');
|
||||
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
|
||||
xml_parse($parser, $xml);
|
||||
xml_parser_free($parser);
|
||||
?>
|
||||
--EXPECT--
|
||||
string(24) "http://example.com/foo@a"
|
||||
|
|
|
@ -32,7 +32,6 @@ $parser = xml_parser_create_ns("ISO-8859-1","@");
|
|||
xml_set_element_handler($parser,'start_elem','end_elem');
|
||||
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
|
||||
xml_parse($parser, $xml);
|
||||
xml_parser_free($parser);
|
||||
?>
|
||||
--EXPECT--
|
||||
http://example.com/foo@a
|
||||
|
|
|
@ -17,7 +17,6 @@ $xml = '<text>start<b /> This & that</text>';
|
|||
$parser = xml_parser_create();
|
||||
xml_parse_into_struct($parser, $xml, $vals, $index);
|
||||
print_r($vals);
|
||||
xml_parser_free($parser);
|
||||
|
||||
echo "\nChange to empty end handler\n";
|
||||
$parser = xml_parser_create();
|
||||
|
@ -26,7 +25,6 @@ xml_set_element_handler($parser,'start_elem','end_elem');
|
|||
xml_set_element_handler($parser,'start_elem',NULL);
|
||||
xml_parse($parser, $xml, TRUE);
|
||||
|
||||
xml_parser_free($parser);
|
||||
echo "\nDone\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -29,7 +29,6 @@ $fp = fopen("xmltest.xml", "r");
|
|||
while ($data = fread($fp, 4096)) {
|
||||
xml_parse($xp, $data, feof($fp));
|
||||
}
|
||||
xml_parser_free($xp);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -13,5 +13,4 @@ foreach ($xmls as $xml) {
|
|||
var_dump(xml_get_error_code($xml_parser));
|
||||
var_dump(xml_error_string(xml_get_error_code($xml_parser)));
|
||||
}
|
||||
xml_parser_free($xml_parser);
|
||||
}
|
|
@ -9,7 +9,6 @@ echo "*** Testing xml_parse_into_struct() : variation ***\n";
|
|||
$simple = "<main><para><note>simple note</note></para><para><note>simple note</note></para></main>";
|
||||
$p = xml_parser_create();
|
||||
xml_parse_into_struct($p, $simple, $vals, $index);
|
||||
xml_parser_free($p);
|
||||
echo "Index array\n";
|
||||
print_r($index);
|
||||
echo "\nVals array\n";
|
||||
|
|
15
ext/xml/tests/xml_parser_free_deprecated.phpt
Normal file
15
ext/xml/tests/xml_parser_free_deprecated.phpt
Normal file
|
@ -0,0 +1,15 @@
|
|||
--TEST--
|
||||
xml_parser_free() deprecation message
|
||||
--EXTENSIONS--
|
||||
xml
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$xp = xml_parser_create();
|
||||
xml_parse($xp, '<root></root>',TRUE);
|
||||
xml_parser_free($xp);
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Deprecated: Function xml_parser_free() is deprecated since 8.5, as it has no effect since PHP 8.0 in %s on line %d
|
||||
Done
|
|
@ -26,8 +26,6 @@ var_dump(xml_parser_get_option($parser, XML_OPTION_TARGET_ENCODING));
|
|||
var_dump(xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "US-ASCII"));
|
||||
var_dump(xml_parser_get_option($parser, XML_OPTION_TARGET_ENCODING));
|
||||
|
||||
xml_parser_free( $parser );
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
|
|
|
@ -32,7 +32,6 @@ class XML_Parser
|
|||
xml_set_notation_decl_handler($parser, $this->notation_decl_handler(...));
|
||||
xml_set_unparsed_entity_decl_handler($parser, $this->unparsed_entity_decl_handler(...));
|
||||
xml_parse($parser, $data, true);
|
||||
xml_parser_free($parser);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ class XML_Parser
|
|||
$parser = xml_parser_create();
|
||||
xml_set_processing_instruction_handler($parser, $this->PIHandler(...));
|
||||
xml_parse($parser, $data, true);
|
||||
xml_parser_free($parser);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -14,7 +14,6 @@ var_dump(xml_set_start_namespace_decl_handler( $parser, "Namespace_Start_Handler
|
|||
var_dump(xml_set_end_namespace_decl_handler( $parser, "Namespace_End_Handler" ));
|
||||
|
||||
xml_parse( $parser, $xml, true);
|
||||
xml_parser_free( $parser );
|
||||
|
||||
echo "Done\n";
|
||||
|
||||
|
|
|
@ -189,6 +189,7 @@ function xml_get_current_column_number(XMLParser $parser): int {}
|
|||
|
||||
function xml_get_current_byte_index(XMLParser $parser): int {}
|
||||
|
||||
#[\Deprecated(since: '8.5', message: "as it has no effect since PHP 8.0")]
|
||||
function xml_parser_free(XMLParser $parser): bool {}
|
||||
|
||||
/** @param string|int|bool $value */
|
||||
|
|
11
ext/xml/xml_arginfo.h
generated
11
ext/xml/xml_arginfo.h
generated
|
@ -1,5 +1,5 @@
|
|||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 94b232499672dfd61c2c585a5d1d8a27d1a4a7ce */
|
||||
* Stub hash: c7838fb209d601be280dfdebfd135906afa36e8c */
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_xml_parser_create, 0, 0, XMLParser, 0)
|
||||
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null")
|
||||
|
@ -125,7 +125,7 @@ static const zend_function_entry ext_functions[] = {
|
|||
ZEND_FE(xml_get_current_line_number, arginfo_xml_get_current_line_number)
|
||||
ZEND_FE(xml_get_current_column_number, arginfo_xml_get_current_column_number)
|
||||
ZEND_FE(xml_get_current_byte_index, arginfo_xml_get_current_byte_index)
|
||||
ZEND_FE(xml_parser_free, arginfo_xml_parser_free)
|
||||
ZEND_RAW_FENTRY("xml_parser_free", zif_xml_parser_free, arginfo_xml_parser_free, ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
ZEND_FE(xml_parser_set_option, arginfo_xml_parser_set_option)
|
||||
ZEND_FE(xml_parser_get_option, arginfo_xml_parser_get_option)
|
||||
ZEND_FE_END
|
||||
|
@ -169,6 +169,13 @@ static void register_xml_symbols(int module_number)
|
|||
zend_string *attribute_Deprecated_func_xml_set_object_0_arg1_str = zend_string_init("provide a proper method callable to xml_set_*_handler() functions", strlen("provide a proper method callable to xml_set_*_handler() functions"), 1);
|
||||
ZVAL_STR(&attribute_Deprecated_func_xml_set_object_0->args[1].value, attribute_Deprecated_func_xml_set_object_0_arg1_str);
|
||||
attribute_Deprecated_func_xml_set_object_0->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
|
||||
|
||||
zend_attribute *attribute_Deprecated_func_xml_parser_free_0 = zend_add_function_attribute(zend_hash_str_find_ptr(CG(function_table), "xml_parser_free", sizeof("xml_parser_free") - 1), ZSTR_KNOWN(ZEND_STR_DEPRECATED_CAPITALIZED), 2);
|
||||
ZVAL_STR(&attribute_Deprecated_func_xml_parser_free_0->args[0].value, ZSTR_KNOWN(ZEND_STR_8_DOT_5));
|
||||
attribute_Deprecated_func_xml_parser_free_0->args[0].name = ZSTR_KNOWN(ZEND_STR_SINCE);
|
||||
zend_string *attribute_Deprecated_func_xml_parser_free_0_arg1_str = zend_string_init("as it has no effect since PHP 8.0", strlen("as it has no effect since PHP 8.0"), 1);
|
||||
ZVAL_STR(&attribute_Deprecated_func_xml_parser_free_0->args[1].value, attribute_Deprecated_func_xml_parser_free_0_arg1_str);
|
||||
attribute_Deprecated_func_xml_parser_free_0->args[1].name = ZSTR_KNOWN(ZEND_STR_MESSAGE);
|
||||
}
|
||||
|
||||
static zend_class_entry *register_class_XMLParser(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue