Skip to content

Commit 93982b1

Browse files
authored
Declare main constants in stubs - part 1 (#9616)
1 parent 0f8b9eb commit 93982b1

File tree

4 files changed

+326
-60
lines changed

4 files changed

+326
-60
lines changed

main/main.c

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
#include "rfc1867.h"
8383

8484
#include "ext/standard/html_tables.h"
85+
#include "main_arginfo.h"
8586
/* }}} */
8687

8788
PHPAPI int (*php_register_internal_extensions_func)(void) = php_register_internal_extensions;
@@ -2014,15 +2015,12 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi
20142015
zend_utility_values zuv;
20152016
zend_result retval = SUCCESS;
20162017
int module_number = 0;
2017-
char *php_os;
20182018
zend_module_entry *module;
20192019

20202020
#ifdef PHP_WIN32
20212021
WORD wVersionRequested = MAKEWORD(2, 0);
20222022
WSADATA wsaData;
20232023

2024-
php_os = "WINNT";
2025-
20262024
old_invalid_parameter_handler =
20272025
_set_invalid_parameter_handler(dummy_invalid_parameter_handler);
20282026
if (old_invalid_parameter_handler != NULL) {
@@ -2031,8 +2029,6 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi
20312029

20322030
/* Disable the message box for assertions.*/
20332031
_CrtSetReportMode(_CRT_ASSERT, 0);
2034-
#else
2035-
php_os = PHP_OS;
20362032
#endif
20372033

20382034
#ifdef ZTS
@@ -2114,62 +2110,9 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi
21142110

21152111
le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0);
21162112

2117-
/* Register constants */
2118-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_VERSION", PHP_VERSION, sizeof(PHP_VERSION)-1, CONST_PERSISTENT | CONST_CS);
2119-
REGISTER_MAIN_LONG_CONSTANT("PHP_MAJOR_VERSION", PHP_MAJOR_VERSION, CONST_PERSISTENT | CONST_CS);
2120-
REGISTER_MAIN_LONG_CONSTANT("PHP_MINOR_VERSION", PHP_MINOR_VERSION, CONST_PERSISTENT | CONST_CS);
2121-
REGISTER_MAIN_LONG_CONSTANT("PHP_RELEASE_VERSION", PHP_RELEASE_VERSION, CONST_PERSISTENT | CONST_CS);
2122-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EXTRA_VERSION", PHP_EXTRA_VERSION, sizeof(PHP_EXTRA_VERSION) - 1, CONST_PERSISTENT | CONST_CS);
2123-
REGISTER_MAIN_LONG_CONSTANT("PHP_VERSION_ID", PHP_VERSION_ID, CONST_PERSISTENT | CONST_CS);
2124-
#ifdef ZTS
2125-
REGISTER_MAIN_LONG_CONSTANT("PHP_ZTS", 1, CONST_PERSISTENT | CONST_CS);
2126-
#else
2127-
REGISTER_MAIN_LONG_CONSTANT("PHP_ZTS", 0, CONST_PERSISTENT | CONST_CS);
2128-
#endif
2129-
REGISTER_MAIN_LONG_CONSTANT("PHP_DEBUG", PHP_DEBUG, CONST_PERSISTENT | CONST_CS);
2130-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS", php_os, strlen(php_os), CONST_PERSISTENT | CONST_CS);
2131-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS_FAMILY", PHP_OS_FAMILY, sizeof(PHP_OS_FAMILY)-1, CONST_PERSISTENT | CONST_CS);
2132-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SAPI", sapi_module.name, strlen(sapi_module.name), CONST_PERSISTENT | CONST_CS | CONST_NO_FILE_CACHE);
2133-
REGISTER_MAIN_STRINGL_CONSTANT("DEFAULT_INCLUDE_PATH", PHP_INCLUDE_PATH, sizeof(PHP_INCLUDE_PATH)-1, CONST_PERSISTENT | CONST_CS);
2134-
REGISTER_MAIN_STRINGL_CONSTANT("PEAR_INSTALL_DIR", PEAR_INSTALLDIR, sizeof(PEAR_INSTALLDIR)-1, CONST_PERSISTENT | CONST_CS);
2135-
REGISTER_MAIN_STRINGL_CONSTANT("PEAR_EXTENSION_DIR", PHP_EXTENSION_DIR, sizeof(PHP_EXTENSION_DIR)-1, CONST_PERSISTENT | CONST_CS);
2136-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EXTENSION_DIR", PHP_EXTENSION_DIR, sizeof(PHP_EXTENSION_DIR)-1, CONST_PERSISTENT | CONST_CS);
2137-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_PREFIX", PHP_PREFIX, sizeof(PHP_PREFIX)-1, CONST_PERSISTENT | CONST_CS);
2138-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_BINDIR", PHP_BINDIR, sizeof(PHP_BINDIR)-1, CONST_PERSISTENT | CONST_CS);
2139-
#ifndef PHP_WIN32
2140-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_MANDIR", PHP_MANDIR, sizeof(PHP_MANDIR)-1, CONST_PERSISTENT | CONST_CS);
2141-
#endif
2142-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_LIBDIR", PHP_LIBDIR, sizeof(PHP_LIBDIR)-1, CONST_PERSISTENT | CONST_CS);
2143-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_DATADIR", PHP_DATADIR, sizeof(PHP_DATADIR)-1, CONST_PERSISTENT | CONST_CS);
2144-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SYSCONFDIR", PHP_SYSCONFDIR, sizeof(PHP_SYSCONFDIR)-1, CONST_PERSISTENT | CONST_CS);
2145-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_LOCALSTATEDIR", PHP_LOCALSTATEDIR, sizeof(PHP_LOCALSTATEDIR)-1, CONST_PERSISTENT | CONST_CS);
2146-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH, strlen(PHP_CONFIG_FILE_PATH), CONST_PERSISTENT | CONST_CS);
2147-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR, sizeof(PHP_CONFIG_FILE_SCAN_DIR)-1, CONST_PERSISTENT | CONST_CS);
2148-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SHLIB_SUFFIX", PHP_SHLIB_SUFFIX, sizeof(PHP_SHLIB_SUFFIX)-1, CONST_PERSISTENT | CONST_CS);
2149-
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EOL", PHP_EOL, sizeof(PHP_EOL)-1, CONST_PERSISTENT | CONST_CS);
2150-
REGISTER_MAIN_LONG_CONSTANT("PHP_MAXPATHLEN", MAXPATHLEN, CONST_PERSISTENT | CONST_CS);
2151-
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MAX", ZEND_LONG_MAX, CONST_PERSISTENT | CONST_CS);
2152-
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MIN", ZEND_LONG_MIN, CONST_PERSISTENT | CONST_CS);
2153-
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_SIZE", SIZEOF_ZEND_LONG, CONST_PERSISTENT | CONST_CS);
2154-
REGISTER_MAIN_LONG_CONSTANT("PHP_FD_SETSIZE", FD_SETSIZE, CONST_PERSISTENT | CONST_CS);
2155-
REGISTER_MAIN_LONG_CONSTANT("PHP_FLOAT_DIG", DBL_DIG, CONST_PERSISTENT | CONST_CS);
2156-
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_EPSILON", DBL_EPSILON, CONST_PERSISTENT | CONST_CS);
2157-
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_MAX", DBL_MAX, CONST_PERSISTENT | CONST_CS);
2158-
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_MIN", DBL_MIN, CONST_PERSISTENT | CONST_CS);
2113+
register_main_symbols(module_number);
21592114

2160-
#ifdef PHP_WIN32
2161-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_MAJOR", EG(windows_version_info).dwMajorVersion, CONST_PERSISTENT | CONST_CS);
2162-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_MINOR", EG(windows_version_info).dwMinorVersion, CONST_PERSISTENT | CONST_CS);
2163-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_BUILD", EG(windows_version_info).dwBuildNumber, CONST_PERSISTENT | CONST_CS);
2164-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_PLATFORM", EG(windows_version_info).dwPlatformId, CONST_PERSISTENT | CONST_CS);
2165-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SP_MAJOR", EG(windows_version_info).wServicePackMajor, CONST_PERSISTENT | CONST_CS);
2166-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SP_MINOR", EG(windows_version_info).wServicePackMinor, CONST_PERSISTENT | CONST_CS);
2167-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SUITEMASK", EG(windows_version_info).wSuiteMask, CONST_PERSISTENT | CONST_CS);
2168-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_PRODUCTTYPE", EG(windows_version_info).wProductType, CONST_PERSISTENT | CONST_CS);
2169-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_DOMAIN_CONTROLLER", VER_NT_DOMAIN_CONTROLLER, CONST_PERSISTENT | CONST_CS);
2170-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_SERVER", VER_NT_SERVER, CONST_PERSISTENT | CONST_CS);
2171-
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_WORKSTATION", VER_NT_WORKSTATION, CONST_PERSISTENT | CONST_CS);
2172-
#endif
2115+
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SAPI", sapi_module.name, strlen(sapi_module.name), CONST_PERSISTENT | CONST_CS | CONST_NO_FILE_CACHE);
21732116

21742117
php_binary_init();
21752118
if (PG(php_binary)) {

main/main.stub.php

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
<?php
2+
3+
/** @generate-class-entries */
4+
5+
/* Register constants */
6+
/**
7+
* @var string
8+
* @cvalue PHP_VERSION
9+
*/
10+
const PHP_VERSION = UNKNOWN;
11+
/**
12+
* @var int
13+
* @cvalue PHP_MAJOR_VERSION
14+
*/
15+
const PHP_MAJOR_VERSION = UNKNOWN;
16+
/**
17+
* @var int
18+
* @cvalue PHP_MINOR_VERSION
19+
*/
20+
const PHP_MINOR_VERSION = UNKNOWN;
21+
/**
22+
* @var int
23+
* @cvalue PHP_RELEASE_VERSION
24+
*/
25+
const PHP_RELEASE_VERSION = UNKNOWN;
26+
27+
/**
28+
* @var string
29+
* @cvalue PHP_EXTRA_VERSION
30+
*/
31+
const PHP_EXTRA_VERSION = UNKNOWN;
32+
/**
33+
* @var int
34+
* @cvalue PHP_VERSION_ID
35+
*/
36+
const PHP_VERSION_ID = UNKNOWN;
37+
/**
38+
* @var int
39+
* @cvalue PHP_ZTS
40+
*/
41+
const PHP_ZTS = UNKNOWN;
42+
/**
43+
* @var int
44+
* @cvalue PHP_DEBUG
45+
*/
46+
const PHP_DEBUG = UNKNOWN;
47+
/**
48+
* @var string
49+
* @cvalue PHP_OS_STR
50+
*/
51+
const PHP_OS = UNKNOWN;
52+
/**
53+
* @var string
54+
* @cvalue PHP_OS_FAMILY
55+
*/
56+
const PHP_OS_FAMILY = UNKNOWN;
57+
/**
58+
* @var string
59+
* @cvalue PHP_INCLUDE_PATH
60+
*/
61+
const DEFAULT_INCLUDE_PATH = UNKNOWN;
62+
/**
63+
* @var string
64+
* @cvalue PEAR_INSTALLDIR
65+
*/
66+
const PEAR_INSTALL_DIR = UNKNOWN;
67+
/**
68+
* @var string
69+
* @cvalue PHP_EXTENSION_DIR
70+
*/
71+
const PEAR_EXTENSION_DIR = UNKNOWN;
72+
/**
73+
* @var string
74+
* @cvalue PHP_EXTENSION_DIR
75+
*/
76+
const PHP_EXTENSION_DIR = UNKNOWN;
77+
/**
78+
* @var string
79+
* @cvalue PHP_PREFIX
80+
*/
81+
const PHP_PREFIX = UNKNOWN;
82+
/**
83+
* @var string
84+
* @cvalue PHP_BINDIR
85+
*/
86+
const PHP_BINDIR = UNKNOWN;
87+
#ifndef PHP_WIN32
88+
/**
89+
* @var string
90+
* @cvalue PHP_MANDIR
91+
*/
92+
const PHP_MANDIR = UNKNOWN;
93+
#endif
94+
/**
95+
* @var string
96+
* @cvalue PHP_LIBDIR
97+
*/
98+
const PHP_LIBDIR = UNKNOWN;
99+
/**
100+
* @var string
101+
* @cvalue PHP_DATADIR
102+
*/
103+
const PHP_DATADIR = UNKNOWN;
104+
/**
105+
* @var string
106+
* @cvalue PHP_SYSCONFDIR
107+
*/
108+
const PHP_SYSCONFDIR = UNKNOWN;
109+
/**
110+
* @var string
111+
* @cvalue PHP_LOCALSTATEDIR
112+
*/
113+
const PHP_LOCALSTATEDIR = UNKNOWN;
114+
/**
115+
* @var string
116+
* @cvalue PHP_CONFIG_FILE_PATH
117+
*/
118+
const PHP_CONFIG_FILE_PATH = UNKNOWN;
119+
/**
120+
* @var string
121+
* @cvalue PHP_CONFIG_FILE_SCAN_DIR
122+
*/
123+
const PHP_CONFIG_FILE_SCAN_DIR = UNKNOWN;
124+
/**
125+
* @var string
126+
* @cvalue PHP_SHLIB_SUFFIX
127+
*/
128+
const PHP_SHLIB_SUFFIX = UNKNOWN;
129+
/**
130+
* @var string
131+
* @cvalue PHP_EOL
132+
*/
133+
const PHP_EOL = UNKNOWN;
134+
/**
135+
* @var int
136+
* @cvalue MAXPATHLEN
137+
*/
138+
const PHP_MAXPATHLEN = UNKNOWN;
139+
/**
140+
* @var int
141+
* @cvalue ZEND_LONG_MAX
142+
*/
143+
const PHP_INT_MAX = UNKNOWN;
144+
/**
145+
* @var int
146+
* @cvalue ZEND_LONG_MIN
147+
*/
148+
const PHP_INT_MIN = UNKNOWN;
149+
/**
150+
* @var int
151+
* @cvalue SIZEOF_ZEND_LONG
152+
*/
153+
const PHP_INT_SIZE = UNKNOWN;
154+
/**
155+
* @var int
156+
* @cvalue FD_SETSIZE
157+
*/
158+
const PHP_FD_SETSIZE = UNKNOWN;
159+
/**
160+
* @var float
161+
* @cvalue DBL_DIG
162+
*/
163+
const PHP_FLOAT_DIG = UNKNOWN;
164+
/**
165+
* @var float
166+
* @cvalue DBL_EPSILON
167+
*/
168+
const PHP_FLOAT_EPSILON = UNKNOWN;
169+
/**
170+
* @var float
171+
* @cvalue DBL_MAX
172+
*/
173+
const PHP_FLOAT_MAX = UNKNOWN;
174+
/**
175+
* @var float
176+
* @cvalue DBL_MIN
177+
*/
178+
const PHP_FLOAT_MIN = UNKNOWN;
179+
180+
#ifdef PHP_WIN32
181+
/**
182+
* @var int
183+
* @cvalue EG(windows_version_info).dwMajorVersion
184+
*/
185+
const PHP_WINDOWS_VERSION_MAJOR = UNKNOWN;
186+
/**
187+
* @var int
188+
* @cvalue EG(windows_version_info).dwMinorVersion
189+
*/
190+
const PHP_WINDOWS_VERSION_MINOR = UNKNOWN;
191+
/**
192+
* @var int
193+
* @cvalue EG(windows_version_info).dwBuildNumber
194+
*/
195+
const PHP_WINDOWS_VERSION_BUILD = UNKNOWN;
196+
/**
197+
* @var int
198+
* @cvalue EG(windows_version_info).dwPlatformId
199+
*/
200+
const PHP_WINDOWS_VERSION_PLATFORM = UNKNOWN;
201+
/**
202+
* @var int
203+
* @cvalue EG(windows_version_info).wServicePackMajor
204+
*/
205+
const PHP_WINDOWS_VERSION_SP_MAJOR = UNKNOWN;
206+
/**
207+
* @var int
208+
* @cvalue EG(windows_version_info).wServicePackMinor
209+
*/
210+
const PHP_WINDOWS_VERSION_SP_MINOR = UNKNOWN;
211+
/**
212+
* @var int
213+
* @cvalue EG(windows_version_info).wSuiteMask
214+
*/
215+
const PHP_WINDOWS_VERSION_SUITEMASK = UNKNOWN;
216+
/**
217+
* @var int
218+
* @cvalue EG(windows_version_info).wProductType
219+
*/
220+
const PHP_WINDOWS_VERSION_PRODUCTTYPE = UNKNOWN;
221+
/**
222+
* @var int
223+
* @cvalue VER_NT_DOMAIN_CONTROLLER
224+
*/
225+
const PHP_WINDOWS_NT_DOMAIN_CONTROLLER = UNKNOWN;
226+
/**
227+
* @var int
228+
* @cvalue VER_NT_SERVER
229+
*/
230+
const PHP_WINDOWS_NT_SERVER = UNKNOWN;
231+
/**
232+
* @var int
233+
* @cvalue VER_NT_WORKSTATION
234+
*/
235+
const PHP_WINDOWS_NT_WORKSTATION = UNKNOWN;
236+
#endif

0 commit comments

Comments
 (0)