Skip to content

Commit ba0d90f

Browse files
committed
Declare ext/libxml constants in stubs
1 parent 6fe7ff9 commit ba0d90f

File tree

3 files changed

+193
-46
lines changed

3 files changed

+193
-46
lines changed

ext/libxml/libxml.c

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,14 @@
4141
#endif
4242

4343
#include "php_libxml.h"
44-
#include "libxml_arginfo.h"
4544

45+
#define PHP_LIBXML_LOADED_VERSION ((char *)xmlParserVersion)
4646
#define PHP_LIBXML_ERROR 0
4747
#define PHP_LIBXML_CTX_ERROR 1
4848
#define PHP_LIBXML_CTX_WARNING 2
4949

50+
#include "libxml_arginfo.h"
51+
5052
/* a true global for initialization */
5153
static int _php_libxml_initialized = 0;
5254
static int _php_libxml_per_request_initialization = 1;
@@ -798,50 +800,7 @@ static PHP_MINIT_FUNCTION(libxml)
798800
{
799801
php_libxml_initialize();
800802

801-
REGISTER_LONG_CONSTANT("LIBXML_VERSION", LIBXML_VERSION, CONST_CS | CONST_PERSISTENT);
802-
REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION", LIBXML_DOTTED_VERSION, CONST_CS | CONST_PERSISTENT);
803-
REGISTER_STRING_CONSTANT("LIBXML_LOADED_VERSION", (char *)xmlParserVersion, CONST_CS | CONST_PERSISTENT);
804-
805-
/* For use with loading xml */
806-
REGISTER_LONG_CONSTANT("LIBXML_NOENT", XML_PARSE_NOENT, CONST_CS | CONST_PERSISTENT);
807-
REGISTER_LONG_CONSTANT("LIBXML_DTDLOAD", XML_PARSE_DTDLOAD, CONST_CS | CONST_PERSISTENT);
808-
REGISTER_LONG_CONSTANT("LIBXML_DTDATTR", XML_PARSE_DTDATTR, CONST_CS | CONST_PERSISTENT);
809-
REGISTER_LONG_CONSTANT("LIBXML_DTDVALID", XML_PARSE_DTDVALID, CONST_CS | CONST_PERSISTENT);
810-
REGISTER_LONG_CONSTANT("LIBXML_NOERROR", XML_PARSE_NOERROR, CONST_CS | CONST_PERSISTENT);
811-
REGISTER_LONG_CONSTANT("LIBXML_NOWARNING", XML_PARSE_NOWARNING, CONST_CS | CONST_PERSISTENT);
812-
REGISTER_LONG_CONSTANT("LIBXML_NOBLANKS", XML_PARSE_NOBLANKS, CONST_CS | CONST_PERSISTENT);
813-
REGISTER_LONG_CONSTANT("LIBXML_XINCLUDE", XML_PARSE_XINCLUDE, CONST_CS | CONST_PERSISTENT);
814-
REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN, CONST_CS | CONST_PERSISTENT);
815-
REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA, CONST_CS | CONST_PERSISTENT);
816-
REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET, CONST_CS | CONST_PERSISTENT);
817-
REGISTER_LONG_CONSTANT("LIBXML_PEDANTIC", XML_PARSE_PEDANTIC, CONST_CS | CONST_PERSISTENT);
818-
REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT);
819-
REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT);
820-
REGISTER_LONG_CONSTANT("LIBXML_PARSEHUGE", XML_PARSE_HUGE, CONST_CS | CONST_PERSISTENT);
821-
#if LIBXML_VERSION >= 20900
822-
REGISTER_LONG_CONSTANT("LIBXML_BIGLINES", XML_PARSE_BIG_LINES, CONST_CS | CONST_PERSISTENT);
823-
#endif
824-
REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT);
825-
826-
/* Schema validation options */
827-
#ifdef LIBXML_SCHEMAS_ENABLED
828-
REGISTER_LONG_CONSTANT("LIBXML_SCHEMA_CREATE", XML_SCHEMA_VAL_VC_I_CREATE, CONST_CS | CONST_PERSISTENT);
829-
#endif
830-
831-
/* Additional constants for use with loading html */
832-
#if LIBXML_VERSION >= 20707
833-
REGISTER_LONG_CONSTANT("LIBXML_HTML_NOIMPLIED", HTML_PARSE_NOIMPLIED, CONST_CS | CONST_PERSISTENT);
834-
#endif
835-
836-
#if LIBXML_VERSION >= 20708
837-
REGISTER_LONG_CONSTANT("LIBXML_HTML_NODEFDTD", HTML_PARSE_NODEFDTD, CONST_CS | CONST_PERSISTENT);
838-
#endif
839-
840-
/* Error levels */
841-
REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE, CONST_CS | CONST_PERSISTENT);
842-
REGISTER_LONG_CONSTANT("LIBXML_ERR_WARNING", XML_ERR_WARNING, CONST_CS | CONST_PERSISTENT);
843-
REGISTER_LONG_CONSTANT("LIBXML_ERR_ERROR", XML_ERR_ERROR, CONST_CS | CONST_PERSISTENT);
844-
REGISTER_LONG_CONSTANT("LIBXML_ERR_FATAL", XML_ERR_FATAL, CONST_CS | CONST_PERSISTENT);
803+
register_libxml_symbols(module_number);
845804

846805
libxmlerror_class_entry = register_class_LibXMLError();
847806

ext/libxml/libxml.stub.php

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,155 @@
22

33
/** @generate-class-entries */
44

5+
/**
6+
* @var int
7+
* @cname LIBXML_VERSION
8+
*/
9+
const LIBXML_VERSION = UNKNOWN;
10+
/**
11+
* @var string
12+
* @cname LIBXML_DOTTED_VERSION
13+
*/
14+
const LIBXML_DOTTED_VERSION = UNKNOWN;
15+
/**
16+
* @var string
17+
* @cname PHP_LIBXML_LOADED_VERSION
18+
*/
19+
const LIBXML_LOADED_VERSION = UNKNOWN;
20+
21+
/**
22+
* @var int
23+
* @cname XML_PARSE_NOENT
24+
*/
25+
const LIBXML_NOENT = UNKNOWN;
26+
/**
27+
* @var int
28+
* @cname XML_PARSE_DTDLOAD
29+
*/
30+
const LIBXML_DTDLOAD = UNKNOWN;
31+
/**
32+
* @var int
33+
* @cname XML_PARSE_DTDATTR
34+
*/
35+
const LIBXML_DTDATTR = UNKNOWN;
36+
/**
37+
* @var int
38+
* @cname XML_PARSE_DTDVALID
39+
*/
40+
const LIBXML_DTDVALID = UNKNOWN;
41+
/**
42+
* @var int
43+
* @cname XML_PARSE_NOERROR
44+
*/
45+
const LIBXML_NOERROR = UNKNOWN;
46+
/**
47+
* @var int
48+
* @cname XML_PARSE_NOWARNING
49+
*/
50+
const LIBXML_NOWARNING = UNKNOWN;
51+
/**
52+
* @var int
53+
* @cname XML_PARSE_NOBLANKS
54+
*/
55+
const LIBXML_NOBLANKS = UNKNOWN;
56+
/**
57+
* @var int
58+
* @cname XML_PARSE_XINCLUDE
59+
*/
60+
const LIBXML_XINCLUDE = UNKNOWN;
61+
/**
62+
* @var int
63+
* @cname XML_PARSE_NSCLEAN
64+
*/
65+
const LIBXML_NSCLEAN = UNKNOWN;
66+
/**
67+
* @var int
68+
* @cname XML_PARSE_NOCDATA
69+
*/
70+
const LIBXML_NOCDATA = UNKNOWN;
71+
/**
72+
* @var int
73+
* @cname XML_PARSE_NONET
74+
*/
75+
const LIBXML_NONET = UNKNOWN;
76+
/**
77+
* @var int
78+
* @cname XML_PARSE_PEDANTIC
79+
*/
80+
const LIBXML_PEDANTIC = UNKNOWN;
81+
/**
82+
* @var int
83+
* @cname XML_PARSE_COMPACT
84+
*/
85+
const LIBXML_COMPACT = UNKNOWN;
86+
/**
87+
* @var int
88+
* @cname XML_SAVE_NO_DECL
89+
*/
90+
const LIBXML_NOXMLDECL = UNKNOWN;
91+
/**
92+
* @var int
93+
* @cname XML_PARSE_HUGE
94+
*/
95+
const LIBXML_PARSEHUGE = UNKNOWN;
96+
#if LIBXML_VERSION >= 20900
97+
/**
98+
* @var int
99+
* @cname XML_PARSE_BIG_LINES
100+
*/
101+
const LIBXML_BIGLINES = UNKNOWN;
102+
#endif
103+
/**
104+
* @var int
105+
* @cname LIBXML_SAVE_NOEMPTYTAG
106+
*/
107+
const LIBXML_NOEMPTYTAG = UNKNOWN;
108+
109+
#ifdef LIBXML_SCHEMAS_ENABLED
110+
/**
111+
* @var int
112+
* @cname XML_SCHEMA_VAL_VC_I_CREATE
113+
*/
114+
const LIBXML_SCHEMA_CREATE = UNKNOWN;
115+
#endif
116+
117+
#if LIBXML_VERSION >= 20707
118+
/**
119+
* @var int
120+
* @cname HTML_PARSE_NOIMPLIED
121+
*/
122+
const LIBXML_HTML_NOIMPLIED = UNKNOWN;
123+
#endif
124+
125+
#if LIBXML_VERSION >= 20708
126+
/**
127+
* @var int
128+
* @cname HTML_PARSE_NODEFDTD
129+
*/
130+
const LIBXML_HTML_NODEFDTD = UNKNOWN;
131+
#endif
132+
133+
/**
134+
* @var int
135+
* @cname XML_ERR_NONE
136+
*/
137+
const LIBXML_ERR_NONE = UNKNOWN;
138+
/**
139+
* @var int
140+
* @cname XML_ERR_WARNING
141+
*/
142+
const LIBXML_ERR_WARNING = UNKNOWN;
143+
/**
144+
* @var int
145+
* @cname XML_ERR_ERROR
146+
*/
147+
const LIBXML_ERR_ERROR = UNKNOWN;
148+
/**
149+
* @var int
150+
* @cname XML_ERR_FATAL
151+
*/
152+
const LIBXML_ERR_FATAL = UNKNOWN;
153+
5154
class LibXMLError
6155
{
7156
public int $level;

ext/libxml/libxml_arginfo.h

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash: 4bde2f5c4e55b6e0c273b0d8605cb765cc9f8400 */
2+
* Stub hash: 92c1a93932fbd2c2738e30c705716b846eadc40c */
33

44
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_libxml_set_streams_context, 0, 1, IS_VOID, 0)
55
ZEND_ARG_INFO(0, context)
@@ -52,6 +52,45 @@ static const zend_function_entry class_LibXMLError_methods[] = {
5252
ZEND_FE_END
5353
};
5454

55+
static void register_libxml_symbols(int module_number)
56+
{
57+
REGISTER_LONG_CONSTANT("LIBXML_VERSION", LIBXML_VERSION, CONST_CS | CONST_PERSISTENT);
58+
REGISTER_STRING_CONSTANT("LIBXML_DOTTED_VERSION", LIBXML_DOTTED_VERSION, CONST_CS | CONST_PERSISTENT);
59+
REGISTER_STRING_CONSTANT("LIBXML_LOADED_VERSION", PHP_LIBXML_LOADED_VERSION, CONST_CS | CONST_PERSISTENT);
60+
REGISTER_LONG_CONSTANT("LIBXML_NOENT", XML_PARSE_NOENT, CONST_CS | CONST_PERSISTENT);
61+
REGISTER_LONG_CONSTANT("LIBXML_DTDLOAD", XML_PARSE_DTDLOAD, CONST_CS | CONST_PERSISTENT);
62+
REGISTER_LONG_CONSTANT("LIBXML_DTDATTR", XML_PARSE_DTDATTR, CONST_CS | CONST_PERSISTENT);
63+
REGISTER_LONG_CONSTANT("LIBXML_DTDVALID", XML_PARSE_DTDVALID, CONST_CS | CONST_PERSISTENT);
64+
REGISTER_LONG_CONSTANT("LIBXML_NOERROR", XML_PARSE_NOERROR, CONST_CS | CONST_PERSISTENT);
65+
REGISTER_LONG_CONSTANT("LIBXML_NOWARNING", XML_PARSE_NOWARNING, CONST_CS | CONST_PERSISTENT);
66+
REGISTER_LONG_CONSTANT("LIBXML_NOBLANKS", XML_PARSE_NOBLANKS, CONST_CS | CONST_PERSISTENT);
67+
REGISTER_LONG_CONSTANT("LIBXML_XINCLUDE", XML_PARSE_XINCLUDE, CONST_CS | CONST_PERSISTENT);
68+
REGISTER_LONG_CONSTANT("LIBXML_NSCLEAN", XML_PARSE_NSCLEAN, CONST_CS | CONST_PERSISTENT);
69+
REGISTER_LONG_CONSTANT("LIBXML_NOCDATA", XML_PARSE_NOCDATA, CONST_CS | CONST_PERSISTENT);
70+
REGISTER_LONG_CONSTANT("LIBXML_NONET", XML_PARSE_NONET, CONST_CS | CONST_PERSISTENT);
71+
REGISTER_LONG_CONSTANT("LIBXML_PEDANTIC", XML_PARSE_PEDANTIC, CONST_CS | CONST_PERSISTENT);
72+
REGISTER_LONG_CONSTANT("LIBXML_COMPACT", XML_PARSE_COMPACT, CONST_CS | CONST_PERSISTENT);
73+
REGISTER_LONG_CONSTANT("LIBXML_NOXMLDECL", XML_SAVE_NO_DECL, CONST_CS | CONST_PERSISTENT);
74+
REGISTER_LONG_CONSTANT("LIBXML_PARSEHUGE", XML_PARSE_HUGE, CONST_CS | CONST_PERSISTENT);
75+
#if LIBXML_VERSION >= 20900
76+
REGISTER_LONG_CONSTANT("LIBXML_BIGLINES", XML_PARSE_BIG_LINES, CONST_CS | CONST_PERSISTENT);
77+
#endif
78+
REGISTER_LONG_CONSTANT("LIBXML_NOEMPTYTAG", LIBXML_SAVE_NOEMPTYTAG, CONST_CS | CONST_PERSISTENT);
79+
#if defined(LIBXML_SCHEMAS_ENABLED)
80+
REGISTER_LONG_CONSTANT("LIBXML_SCHEMA_CREATE", XML_SCHEMA_VAL_VC_I_CREATE, CONST_CS | CONST_PERSISTENT);
81+
#endif
82+
#if LIBXML_VERSION >= 20707
83+
REGISTER_LONG_CONSTANT("LIBXML_HTML_NOIMPLIED", HTML_PARSE_NOIMPLIED, CONST_CS | CONST_PERSISTENT);
84+
#endif
85+
#if LIBXML_VERSION >= 20708
86+
REGISTER_LONG_CONSTANT("LIBXML_HTML_NODEFDTD", HTML_PARSE_NODEFDTD, CONST_CS | CONST_PERSISTENT);
87+
#endif
88+
REGISTER_LONG_CONSTANT("LIBXML_ERR_NONE", XML_ERR_NONE, CONST_CS | CONST_PERSISTENT);
89+
REGISTER_LONG_CONSTANT("LIBXML_ERR_WARNING", XML_ERR_WARNING, CONST_CS | CONST_PERSISTENT);
90+
REGISTER_LONG_CONSTANT("LIBXML_ERR_ERROR", XML_ERR_ERROR, CONST_CS | CONST_PERSISTENT);
91+
REGISTER_LONG_CONSTANT("LIBXML_ERR_FATAL", XML_ERR_FATAL, CONST_CS | CONST_PERSISTENT);
92+
}
93+
5594
static zend_class_entry *register_class_LibXMLError(void)
5695
{
5796
zend_class_entry ce, *class_entry;

0 commit comments

Comments
 (0)