Skip to content

Commit 7601068

Browse files
authored
Declare ext/libxml constants in stubs (#8721)
1 parent c83b570 commit 7601068

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
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)