Hi,
The attached patch allows to declare internal classes, functions and
constants in namesaces and create aliases for classes and functions.
I'm going to commit it on next week in case of no objections.
The second patch (for ext/soap) is just a prove of concept and I'm not
going to commit it in this time.
Thanks. Dmitry.
Index: Zend/zend_API.c
===================================================================
RCS file: /repository/ZendEngine2/zend_API.c,v
retrieving revision 1.296.2.27.2.34.2.34
diff -u -p -d -r1.296.2.27.2.34.2.34 zend_API.c
--- Zend/zend_API.c 5 May 2008 09:44:39 -0000 1.296.2.27.2.34.2.34
+++ Zend/zend_API.c 7 May 2008 12:50:31 -0000
@@ -2213,6 +2213,20 @@ ZEND_API zend_class_entry *zend_register
}
/* }}} */
+ZEND_API int zend_register_class_alias_ex(char *name, int name_len,
zend_class_entry *ce TSRMLS_DC) /* {{{ */
+{
+ char *lcname = zend_str_tolower_dup(name, name_len);
+ int ret;
+
+ ret = zend_hash_add(CG(class_table), lcname, name_len+1, &ce,
sizeof(zend_class_entry *), NULL);
+ efree(lcname);
+ if (ret == SUCCESS) {
+ ce->refcount++;
+ }
+ return ret;
+}
+/* }}} */
+
ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
zend_bool is_ref, int num_symbol_tables, ...) /* {{{ */
{
HashTable *symbol_table;
Index: Zend/zend_API.h
===================================================================
RCS file: /repository/ZendEngine2/zend_API.h,v
retrieving revision 1.207.2.8.2.8.2.10
diff -u -p -d -r1.207.2.8.2.8.2.10 zend_API.h
--- Zend/zend_API.h 29 Apr 2008 08:15:16 -0000 1.207.2.8.2.8.2.10
+++ Zend/zend_API.h 7 May 2008 12:50:32 -0000
@@ -40,6 +40,8 @@ typedef struct _zend_function_entry {
zend_uint flags;
} zend_function_entry;
+#define ZEND_NS_NAME(ns, name) ns"::"name
+
#define ZEND_FN(name) zif_##name
#define ZEND_MN(name) zim_##name
#define ZEND_NAMED_FUNCTION(name) void
name(INTERNAL_FUNCTION_PARAMETERS)
@@ -63,6 +65,17 @@ typedef struct _zend_function_entry {
ZEND_FENTRY(name,
ZEND_MN(classname##_##alias), arg_info, flags)
#define ZEND_ME_MAPPING(name, func_name, arg_types, flags) ZEND_NAMED_ME(name,
ZEND_FN(func_name), arg_types, flags)
+#define ZEND_NS_FENTRY(ns, zend_name, name, arg_info, flags)
ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, #zend_name), name, arg_info, flags)
+
+#define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags)
ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags)
+#define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info)
ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0)
+
+#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info)
+#define ZEND_NS_FE(ns, name, arg_info)
ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0)
+#define ZEND_NS_DEP_FE(ns, name, arg_info)
ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
+#define ZEND_NS_FALIAS(ns, name, alias, arg_info)
ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0)
+#define ZEND_NS_DEP_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns,
name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED)
+
#define ZEND_ARG_INFO(pass_by_ref, name)
{ #name, sizeof(#name)-1, NULL, 0, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_PASS_INFO(pass_by_ref)
{ NULL, 0, NULL, 0, 0, 0, pass_by_ref, 0, 0 },
#define ZEND_ARG_OBJ_INFO(pass_by_ref, name, classname, allow_null) { #name,
sizeof(#name)-1, #classname, sizeof(#classname)-1, 0, allow_null, pass_by_ref,
0, 0 },
@@ -166,6 +179,13 @@ typedef struct _zend_function_entry {
#define INIT_OVERLOADED_CLASS_ENTRY(class_container, class_name, functions,
handle_fcall, handle_propget, handle_propset) \
INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, class_name,
sizeof(class_name)-1, functions, handle_fcall, handle_propget, handle_propset,
NULL, NULL)
+#define INIT_NS_CLASS_ENTRY(class_container, ns, class_name, functions) \
+ INIT_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns, class_name),
functions)
+#define INIT_OVERLOADED_NS_CLASS_ENTRY_EX(class_container, ns, class_name,
functions, handle_fcall, handle_propget, handle_propset, handle_propunset,
handle_propisset) \
+ INIT_OVERLOADED_CLASS_ENTRY_EX(class_container, ZEND_NS_NAME(ns,
class_name), sizeof(ZEND_NS_NAME(ns, class_name))-1, functions, handle_fcall,
handle_propget, handle_propset, handle_propunset, handle_propisset)
+#define INIT_OVERLOADED_NS_CLASS_ENTRY(class_container, ns, class_name,
functions, handle_fcall, handle_propget, handle_propset) \
+ INIT_OVERLOADED_CLASS_ENTRY(class_container, ZEND_NS_NAME(ns,
class_name), functions, handle_fcall, handle_propget, handle_propset)
+
#ifdef ZTS
# define CE_STATIC_MEMBERS(ce)
(((ce)->type==ZEND_USER_CLASS)?(ce)->static_members:CG(static_members)[(zend_intptr_t)(ce)->static_members])
#else
@@ -218,6 +238,13 @@ ZEND_API zend_class_entry *zend_register
ZEND_API zend_class_entry *zend_register_internal_interface(zend_class_entry
*orig_class_entry TSRMLS_DC);
ZEND_API void zend_class_implements(zend_class_entry *class_entry TSRMLS_DC,
int num_interfaces, ...);
+ZEND_API int zend_register_class_alias_ex(char *name, int name_len,
zend_class_entry *ce TSRMLS_DC);
+
+#define zend_register_class_alias(name, ce) \
+ zend_register_class_alias_ex(name, sizeof(name)-1, ce TSRMLS_DC)
+#define zend_register_ns_class_alias(ns, name, ce) \
+ zend_register_class_alias_ex(ZEND_NS_NAME(ns, name),
sizeof(ZEND_NS_NAME(ns, name))-1, ce TSRMLS_DC)
+
ZEND_API int zend_disable_function(char *function_name, uint
function_name_length TSRMLS_DC);
ZEND_API int zend_disable_class(char *class_name, uint class_name_length
TSRMLS_DC);
Index: Zend/zend_constants.h
===================================================================
RCS file: /repository/ZendEngine2/zend_constants.h,v
retrieving revision 1.31.2.2.2.3.2.2
diff -u -p -d -r1.31.2.2.2.3.2.2 zend_constants.h
--- Zend/zend_constants.h 31 Dec 2007 07:17:04 -0000 1.31.2.2.2.3.2.2
+++ Zend/zend_constants.h 7 May 2008 12:50:32 -0000
@@ -43,6 +43,11 @@ typedef struct _zend_constant {
#define REGISTER_STRING_CONSTANT(name, str, flags)
zend_register_string_constant((name), sizeof(name), (str), (flags),
module_number TSRMLS_CC)
#define REGISTER_STRINGL_CONSTANT(name, str, len, flags)
zend_register_stringl_constant((name), sizeof(name), (str), (len), (flags),
module_number TSRMLS_CC)
+#define REGISTER_NS_LONG_CONSTANT(ns, name, lval, flags)
zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns,
name)), (lval), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_DOUBLE_CONSTANT(ns, name, dval, flags)
zend_register_double_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns,
name)), (dval), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_STRING_CONSTANT(ns, name, str, flags)
zend_register_string_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns,
name)), (str), (flags), module_number TSRMLS_CC)
+#define REGISTER_NS_STRINGL_CONSTANT(ns, name, str, len, flags)
zend_register_stringl_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns,
name)), (str), (len), (flags), module_number TSRMLS_CC)
+
#define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags)
zend_register_long_constant((name), sizeof(name), (lval), (flags), 0 TSRMLS_CC)
#define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags)
zend_register_double_constant((name), sizeof(name), (dval), (flags), 0
TSRMLS_CC)
#define REGISTER_MAIN_STRING_CONSTANT(name, str, flags)
zend_register_string_constant((name), sizeof(name), (str), (flags), 0 TSRMLS_CC)
Index: main/php.h
===================================================================
RCS file: /repository/php-src/main/php.h,v
retrieving revision 1.221.2.4.2.8.2.4
diff -u -p -d -r1.221.2.4.2.8.2.4 php.h
--- main/php.h 8 Mar 2008 22:12:32 -0000 1.221.2.4.2.8.2.4
+++ main/php.h 7 May 2008 12:50:32 -0000
@@ -341,6 +341,13 @@ END_EXTERN_C()
#define PHP_ABSTRACT_ME ZEND_ABSTRACT_ME
#define PHP_ME_MAPPING ZEND_ME_MAPPING
+#define PHP_NS_RAW_NAMED_FE ZEND_NS_RAW_NAMED_FE
+#define PHP_NS_NAMED_FE ZEND_NS_NAMED_FE
+#define PHP_NS_FE ZEND_NS_FE
+#define PHP_NS_DEP_FE ZEND_NS_DEP_FE
+#define PHP_NS_FALIAS ZEND_NS_FALIAS
+#define PHP_NS_DEP_FALIAS ZEND_NS_DEP_FALIAS
+
#define PHP_MODULE_STARTUP_N ZEND_MODULE_STARTUP_N
#define PHP_MODULE_SHUTDOWN_N ZEND_MODULE_SHUTDOWN_N
#define PHP_MODULE_ACTIVATE_N ZEND_MODULE_ACTIVATE_N
Index: ext/soap/soap.c
===================================================================
RCS file: /repository/php-src/ext/soap/soap.c,v
retrieving revision 1.156.2.28.2.30.2.14
diff -u -p -d -r1.156.2.28.2.30.2.14 soap.c
--- ext/soap/soap.c 10 Mar 2008 22:12:35 -0000 1.156.2.28.2.30.2.14
+++ ext/soap/soap.c 5 May 2008 09:05:16 -0000
@@ -30,6 +30,8 @@
# include "zend_exceptions.h"
#endif
+#define PHP_SOAP_NAMESPACE "php::soap"
+
static int le_sdl = 0;
int le_url = 0;
static int le_service = 0;
@@ -240,7 +242,7 @@ PHP_FUNCTION(is_soap_fault);
/* Server Functions */
-PHP_METHOD(SoapServer, SoapServer);
+PHP_METHOD(SoapServer, __construct);
PHP_METHOD(SoapServer, setClass);
PHP_METHOD(SoapServer, setObject);
PHP_METHOD(SoapServer, addFunction);
@@ -251,7 +253,7 @@ PHP_METHOD(SoapServer, fault);
PHP_METHOD(SoapServer, addSoapHeader);
/* Client Functions */
-PHP_METHOD(SoapClient, SoapClient);
+PHP_METHOD(SoapClient, __construct);
PHP_METHOD(SoapClient, __call);
PHP_METHOD(SoapClient, __getLastRequest);
PHP_METHOD(SoapClient, __getLastResponse);
@@ -265,30 +267,32 @@ PHP_METHOD(SoapClient, __setLocation);
PHP_METHOD(SoapClient, __setSoapHeaders);
/* SoapVar Functions */
-PHP_METHOD(SoapVar, SoapVar);
+PHP_METHOD(SoapVar, __construct);
/* SoapFault Functions */
-PHP_METHOD(SoapFault, SoapFault);
+PHP_METHOD(SoapFault, __construct);
#ifdef ZEND_ENGINE_2
PHP_METHOD(SoapFault, __toString);
#endif
/* SoapParam Functions */
-PHP_METHOD(SoapParam, SoapParam);
+PHP_METHOD(SoapParam, __construct);
/* SoapHeader Functions */
-PHP_METHOD(SoapHeader, SoapHeader);
+PHP_METHOD(SoapHeader, __construct);
#define SOAP_CTOR(class_name, func_name, arginfo, flags) PHP_ME(class_name,
func_name, arginfo, flags)
static const zend_function_entry soap_functions[] = {
PHP_FE(use_soap_error_handler, NULL)
PHP_FE(is_soap_fault, NULL)
+ PHP_NS_FALIAS(PHP_SOAP_NAMESPACE, use_error_handler,
use_soap_error_handler, NULL)
+ PHP_NS_FALIAS(PHP_SOAP_NAMESPACE, is_fault, is_soap_fault, NULL)
{NULL, NULL, NULL}
};
static const zend_function_entry soap_fault_functions[] = {
- SOAP_CTOR(SoapFault, SoapFault, NULL, 0)
+ SOAP_CTOR(SoapFault, __construct, NULL, 0)
#ifdef ZEND_ENGINE_2
PHP_ME(SoapFault, __toString, NULL, 0)
#endif
@@ -296,7 +300,7 @@ static const zend_function_entry soap_fa
};
static const zend_function_entry soap_server_functions[] = {
- SOAP_CTOR(SoapServer, SoapServer, NULL, 0)
+ SOAP_CTOR(SoapServer, __construct, NULL, 0)
PHP_ME(SoapServer, setPersistence, NULL, 0)
PHP_ME(SoapServer, setClass, NULL, 0)
PHP_ME(SoapServer, setObject, NULL, 0)
@@ -326,7 +330,7 @@ unsigned char __soap_call_args[] = { 5,
#endif
static const zend_function_entry soap_client_functions[] = {
- SOAP_CTOR(SoapClient, SoapClient, NULL, 0)
+ SOAP_CTOR(SoapClient, __construct, NULL, 0)
PHP_ME(SoapClient, __call, __call_args, 0)
ZEND_NAMED_ME(__soapCall, ZEND_MN(SoapClient___call), __soap_call_args,
0)
PHP_ME(SoapClient, __getLastRequest, NULL, 0)
@@ -343,17 +347,17 @@ static const zend_function_entry soap_cl
};
static const zend_function_entry soap_var_functions[] = {
- SOAP_CTOR(SoapVar, SoapVar, NULL, 0)
+ SOAP_CTOR(SoapVar, __construct, NULL, 0)
{NULL, NULL, NULL}
};
static const zend_function_entry soap_param_functions[] = {
- SOAP_CTOR(SoapParam, SoapParam, NULL, 0)
+ SOAP_CTOR(SoapParam, __construct, NULL, 0)
{NULL, NULL, NULL}
};
static const zend_function_entry soap_header_functions[] = {
- SOAP_CTOR(SoapHeader, SoapHeader, NULL, 0)
+ SOAP_CTOR(SoapHeader, __construct, NULL, 0)
{NULL, NULL, NULL}
};
@@ -552,6 +556,7 @@ PHP_MINIT_FUNCTION(soap)
INIT_OVERLOADED_CLASS_ENTRY(ce, PHP_SOAP_CLIENT_CLASSNAME,
soap_client_functions,
(zend_function *)&fe, NULL, NULL);
soap_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Client",
soap_class_entry);
}
#else
INIT_OVERLOADED_CLASS_ENTRY(ce, PHP_SOAP_CLIENT_CLASSNAME,
soap_client_functions, soap_call_function_handler, NULL, NULL);
@@ -559,17 +564,26 @@ PHP_MINIT_FUNCTION(soap)
#endif
/* Register SoapVar class */
+#if 1
+ INIT_NS_CLASS_ENTRY(ce, PHP_SOAP_NAMESPACE, "Variable",
soap_var_functions);
+ soap_var_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_class_alias(PHP_SOAP_VAR_CLASSNAME, soap_var_class_entry);
+#else
INIT_CLASS_ENTRY(ce, PHP_SOAP_VAR_CLASSNAME, soap_var_functions);
soap_var_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Variable",
soap_var_class_entry);
+#endif
/* Register SoapServer class */
INIT_CLASS_ENTRY(ce, PHP_SOAP_SERVER_CLASSNAME, soap_server_functions);
soap_server_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Server",
soap_server_class_entry);
/* Register SoapFault class */
INIT_CLASS_ENTRY(ce, PHP_SOAP_FAULT_CLASSNAME, soap_fault_functions);
#ifdef ZEND_ENGINE_2
soap_fault_class_entry = zend_register_internal_class_ex(&ce,
zend_exception_get_default(TSRMLS_C), NULL TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Fault",
soap_fault_class_entry);
#else
soap_fault_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
#endif
@@ -577,9 +591,11 @@ PHP_MINIT_FUNCTION(soap)
/* Register SoapParam class */
INIT_CLASS_ENTRY(ce, PHP_SOAP_PARAM_CLASSNAME, soap_param_functions);
soap_param_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Param",
soap_param_class_entry);
INIT_CLASS_ENTRY(ce, PHP_SOAP_HEADER_CLASSNAME, soap_header_functions);
soap_header_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
+ zend_register_ns_class_alias(PHP_SOAP_NAMESPACE, "Header",
soap_header_class_entry);
le_sdl = register_list_destructors(delete_sdl, NULL);
le_url = register_list_destructors(delete_url, NULL);
@@ -678,6 +694,98 @@ PHP_MINIT_FUNCTION(soap)
REGISTER_LONG_CONSTANT("WSDL_CACHE_MEMORY", WSDL_CACHE_MEMORY, CONST_CS
| CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("WSDL_CACHE_BOTH", WSDL_CACHE_BOTH, CONST_CS
| CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "SOAP_1_1", SOAP_1_1,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "SOAP_1_2", SOAP_1_2,
CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "PERSISTENCE_SESSION",
SOAP_PERSISTENCE_SESSION, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "PERSISTENCE_REQUEST",
SOAP_PERSISTENCE_REQUEST, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "FUNCTIONS_ALL",
SOAP_FUNCTIONS_ALL, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ENCODED", SOAP_ENCODED,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "LITERAL", SOAP_LITERAL,
CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "RPC", SOAP_RPC, CONST_CS
| CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "DOCUMENT",
SOAP_DOCUMENT, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ACTOR_NEXT",
SOAP_ACTOR_NEXT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ACTOR_NONE",
SOAP_ACTOR_NONE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ACTOR_UNLIMATERECEIVER",
SOAP_ACTOR_UNLIMATERECEIVER, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "COMPRESSION_ACCEPT",
SOAP_COMPRESSION_ACCEPT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "COMPRESSION_GZIP",
SOAP_COMPRESSION_GZIP, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "COMPRESSION_DEFLATE",
SOAP_COMPRESSION_DEFLATE, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "AUTHENTICATION_BASIC",
SOAP_AUTHENTICATION_BASIC, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "AUTHENTICATION_DIGEST",
SOAP_AUTHENTICATION_DIGEST, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "UNKNOWN_TYPE",
UNKNOWN_TYPE, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_STRING", XSD_STRING,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_BOOLEAN",
XSD_BOOLEAN, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_DECIMAL",
XSD_DECIMAL, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_FLOAT", XSD_FLOAT,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_DOUBLE", XSD_DOUBLE,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_DURATION",
XSD_DURATION, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_DATETIME",
XSD_DATETIME, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_TIME", XSD_TIME,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_DATE", XSD_DATE,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_GYEARMONTH",
XSD_GYEARMONTH, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_GYEAR", XSD_GYEAR,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_GMONTHDAY",
XSD_GMONTHDAY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_GDAY", XSD_GDAY,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_GMONTH", XSD_GMONTH,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_HEXBINARY",
XSD_HEXBINARY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_BASE64BINARY",
XSD_BASE64BINARY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ANYURI", XSD_ANYURI,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_QNAME", XSD_QNAME,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NOTATION",
XSD_NOTATION, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NORMALIZEDSTRING",
XSD_NORMALIZEDSTRING, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_TOKEN", XSD_TOKEN,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_LANGUAGE",
XSD_LANGUAGE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NMTOKEN",
XSD_NMTOKEN, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NAME", XSD_NAME,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NCNAME", XSD_NCNAME,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ID", XSD_ID,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_IDREF", XSD_IDREF,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_IDREFS", XSD_IDREFS,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ENTITY", XSD_ENTITY,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ENTITIES",
XSD_ENTITIES, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_INTEGER",
XSD_INTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NONPOSITIVEINTEGER",
XSD_NONPOSITIVEINTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NEGATIVEINTEGER",
XSD_NEGATIVEINTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_LONG", XSD_LONG,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_INT", XSD_INT,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_SHORT", XSD_SHORT,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_BYTE", XSD_BYTE,
CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NONNEGATIVEINTEGER",
XSD_NONNEGATIVEINTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_UNSIGNEDLONG",
XSD_UNSIGNEDLONG, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_UNSIGNEDINT",
XSD_UNSIGNEDINT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_UNSIGNEDSHORT",
XSD_UNSIGNEDSHORT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_UNSIGNEDBYTE",
XSD_UNSIGNEDBYTE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_POSITIVEINTEGER",
XSD_POSITIVEINTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NMTOKENS",
XSD_NMTOKENS, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ANYTYPE",
XSD_ANYTYPE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_ANYXML", XSD_ANYXML,
CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "APACHE_MAP", APACHE_MAP,
CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ENC_OBJECT",
SOAP_ENC_OBJECT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "ENC_ARRAY",
SOAP_ENC_ARRAY, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_1999_TIMEINSTANT",
XSD_1999_TIMEINSTANT, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_STRING_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_NAMESPACE",
XSD_NAMESPACE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_STRING_CONSTANT(PHP_SOAP_NAMESPACE, "XSD_1999_NAMESPACE",
XSD_1999_NAMESPACE, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "SINGLE_ELEMENT_ARRAYS",
SOAP_SINGLE_ELEMENT_ARRAYS, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "WAIT_ONE_WAY_CALLS",
SOAP_WAIT_ONE_WAY_CALLS, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "USE_XSI_ARRAY_TYPE",
SOAP_USE_XSI_ARRAY_TYPE, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "WSDL_CACHE_NONE",
WSDL_CACHE_NONE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "WSDL_CACHE_DISK",
WSDL_CACHE_DISK, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "WSDL_CACHE_MEMORY",
WSDL_CACHE_MEMORY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_NS_LONG_CONSTANT(PHP_SOAP_NAMESPACE, "WSDL_CACHE_BOTH",
WSDL_CACHE_BOTH, CONST_CS | CONST_PERSISTENT);
+
old_error_handler = zend_error_cb;
zend_error_cb = soap_error_handler;
@@ -696,7 +804,7 @@ PHP_MINFO_FUNCTION(soap)
/* {{{ proto object SoapParam::SoapParam ( mixed data, string name)
SoapParam constructor */
-PHP_METHOD(SoapParam, SoapParam)
+PHP_METHOD(SoapParam, __construct)
{
zval *data;
char *name;
@@ -720,7 +828,7 @@ PHP_METHOD(SoapParam, SoapParam)
/* {{{ proto object SoapHeader::SoapHeader ( string namespace, string name [,
mixed data [, bool mustUnderstand [, mixed actor]]])
SoapHeader constructor */
-PHP_METHOD(SoapHeader, SoapHeader)
+PHP_METHOD(SoapHeader, __construct)
{
zval *data = NULL, *actor = NULL;
char *name, *ns;
@@ -761,7 +869,7 @@ PHP_METHOD(SoapHeader, SoapHeader)
/* {{{ proto object SoapFault::SoapFault ( string faultcode, string
faultstring [, string faultactor [, mixed detail [, string faultname [, mixed
headerfault]]]])
SoapFault constructor */
-PHP_METHOD(SoapFault, SoapFault)
+PHP_METHOD(SoapFault, __construct)
{
char *fault_string = NULL, *fault_code = NULL, *fault_actor = NULL,
*name = NULL, *fault_code_ns = NULL;
int fault_string_len, fault_actor_len, name_len, fault_code_len = 0;
@@ -857,7 +965,7 @@ PHP_METHOD(SoapFault, __toString)
/* {{{ proto object SoapVar::SoapVar ( mixed data, int encoding [, string
type_name [, string type_namespace [, string node_name [, string
node_namespace]]]])
SoapVar constructor */
-PHP_METHOD(SoapVar, SoapVar)
+PHP_METHOD(SoapVar, __construct)
{
zval *data, *type;
char *stype = NULL, *ns = NULL, *name = NULL, *namens = NULL;
@@ -1018,7 +1126,7 @@ static HashTable* soap_create_typemap(sd
/* {{{ proto object SoapServer::SoapServer ( mixed wsdl [, array options])
SoapServer constructor */
-PHP_METHOD(SoapServer, SoapServer)
+PHP_METHOD(SoapServer, __construct)
{
soapServicePtr service;
zval *wsdl, *options = NULL;
@@ -2291,7 +2399,7 @@ PHP_FUNCTION(is_soap_fault)
/* {{{ proto object SoapClient::SoapClient ( mixed wsdl [, array options])
SoapClient constructor */
-PHP_METHOD(SoapClient, SoapClient)
+PHP_METHOD(SoapClient, __construct)
{
zval *wsdl;
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php