- no need to mark HttpUtil as final
authorMichael Wallner <mike@php.net>
Sun, 24 Jul 2005 18:16:11 +0000 (18:16 +0000)
committerMichael Wallner <mike@php.net>
Sun, 24 Jul 2005 18:16:11 +0000 (18:16 +0000)
- Reflection awareness of HttpUtil
- fix config.m4

KnownIssues.txt
config.m4
http_util_object.c
php_http_util_object.h

index ae9efc7..dfb4e6f 100644 (file)
@@ -4,3 +4,6 @@ $Id$
 
 Issues I don't know how to solve yet are as follows:
 
+- INI entry allowed_methods is not working properly
+- Reflection on static class members does not work
+
index 3967b1f..15d958c 100644 (file)
--- a/config.m4
+++ b/config.m4
@@ -79,10 +79,12 @@ dnl ----
        PHP_NEW_EXTENSION([http], $PHP_HTTP_SOURCES, [$ext_shared])
        PHP_SUBST([HTTP_SHARED_LIBADD])
        PHP_ADD_MAKEFILE_FRAGMENT
-       if ! test -z "$HTTP_ODD_WARNINGS"; then
-               CFLAGS=" -g -O2 -W -Wchar-subscripts -Wformat=2 -Wno-format-y2k -Wimplicit -Wmissing-braces -Wunused-variable -Wbad-function-cast -Wpointer-arith -Wsign-compare -Winline"
-               PHP_SUBST([CFLAGS])
-       fi
        AC_DEFINE([HAVE_HTTP], [1], [Have extended HTTP support])
-fi
 
+dnl ---
+dnl odd warnings
+dnl ---
+dnl            CFLAGS=" -g -O2 -W -Wchar-subscripts -Wformat=2 -Wno-format-y2k -Wimplicit -Wmissing-braces -Wunused-variable -Wbad-function-cast -Wpointer-arith -Wsign-compare -Winline"
+dnl            PHP_SUBST([CFLAGS])
+
+fi
index b1951fb..d4c544d 100644 (file)
 #include "php_http_std_defs.h"
 #include "php_http_util_object.h"
 
+#define HTTP_BEGIN_ARGS(method, req_args)              HTTP_BEGIN_ARGS_EX(HttpUtil, method, 0, req_args)
+#define HTTP_EMPTY_ARGS(method, ret_ref)               HTTP_EMPTY_ARGS_EX(HttpUtil, method, ret_ref)
+
+#define HTTP_UTIL_ALIAS(method, func)                  HTTP_STATIC_ME_ALIAS(method, func, HTTP_ARGS(HttpUtil, method))
+
+HTTP_BEGIN_ARGS(date, 0)
+       HTTP_ARG_VAL(timestamp, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(absoluteUri, 1)
+       HTTP_ARG_VAL(url, 0)
+       HTTP_ARG_VAL(proto, 0)
+       HTTP_ARG_VAL(host, 0)
+       HTTP_ARG_VAL(port, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(negotiateLanguage, 1)
+       HTTP_ARG_VAL(supported, 0)
+       HTTP_ARG_VAL(default, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(negotiateCharset, 1)
+       HTTP_ARG_VAL(supported, 0)
+       HTTP_ARG_VAL(default, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(matchModified, 1)
+       HTTP_ARG_VAL(last_modified, 0)
+       HTTP_ARG_VAL(for_range, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(matchEtag, 1)
+       HTTP_ARG_VAL(plain_etag, 0)
+       HTTP_ARG_VAL(for_range, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(matchRequestHeader, 2)
+       HTTP_ARG_VAL(header_name, 0)
+       HTTP_ARG_VAL(header_value, 0)
+       HTTP_ARG_VAL(case_sensitive, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(chunkedDecode, 1)
+       HTTP_ARG_VAL(encoded_string, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(splitResponse, 1)
+       HTTP_ARG_VAL(response_string, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(parseHeaders, 1)
+       HTTP_ARG_VAL(headers_string, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(authBasic, 2)
+       HTTP_ARG_VAL(username, 0)
+       HTTP_ARG_VAL(password, 0)
+       HTTP_ARG_VAL(realm, 0)
+HTTP_END_ARGS;
+
+HTTP_BEGIN_ARGS(authBasicCallback, 1)
+       HTTP_ARG_VAL(callback, 0)
+       HTTP_ARG_VAL(realm, 0)
+HTTP_END_ARGS;
+
 zend_class_entry *http_util_object_ce;
 zend_function_entry http_util_object_fe[] = {
-       HTTP_STATIC_ME_ALIAS(date, http_date, NULL)
-       HTTP_STATIC_ME_ALIAS(absoluteURI, http_absolute_uri, NULL)
-       HTTP_STATIC_ME_ALIAS(negotiateLanguage, http_negotiate_language, NULL)
-       HTTP_STATIC_ME_ALIAS(negotiateCharset, http_negotiate_charset, NULL)
-       HTTP_STATIC_ME_ALIAS(matchModified, http_match_modified, NULL)
-       HTTP_STATIC_ME_ALIAS(matchEtag, http_match_etag, NULL)
-       HTTP_STATIC_ME_ALIAS(chunkedDecode, http_chunked_decode, NULL)
-       HTTP_STATIC_ME_ALIAS(splitResponse, http_split_response, NULL)
-       HTTP_STATIC_ME_ALIAS(parseHeaders, http_parse_headers, NULL)
-       HTTP_STATIC_ME_ALIAS(authBasic, http_auth_basic, NULL)
-       HTTP_STATIC_ME_ALIAS(authBasicCallback, http_auth_basic_cb, NULL)
+       HTTP_UTIL_ALIAS(date, http_date)
+       HTTP_UTIL_ALIAS(absoluteUri, http_absolute_uri)
+       HTTP_UTIL_ALIAS(negotiateLanguage, http_negotiate_language)
+       HTTP_UTIL_ALIAS(negotiateCharset, http_negotiate_charset)
+       HTTP_UTIL_ALIAS(matchModified, http_match_modified)
+       HTTP_UTIL_ALIAS(matchEtag, http_match_etag)
+       HTTP_UTIL_ALIAS(matchRequestHeader, http_match_request_header)
+       HTTP_UTIL_ALIAS(chunkedDecode, http_chunked_decode)
+       HTTP_UTIL_ALIAS(splitResponse, http_split_response)
+       HTTP_UTIL_ALIAS(parseHeaders, http_parse_headers)
+       HTTP_UTIL_ALIAS(authBasic, http_auth_basic)
+       HTTP_UTIL_ALIAS(authBasicCallback, http_auth_basic_cb)
        {NULL, NULL, NULL}
 };
 
 void _http_util_object_init(INIT_FUNC_ARGS)
 {
-       HTTP_REGISTER_CLASS(HttpUtil, http_util_object, NULL, ZEND_ACC_FINAL_CLASS);
+       HTTP_REGISTER_CLASS(HttpUtil, http_util_object, NULL, 0);
 }
 
 #endif /* ZEND_ENGINE_2 */
index 8a4a9f3..0742ef8 100644 (file)
@@ -26,7 +26,7 @@ extern zend_function_entry http_util_object_fe[];
 extern void _http_util_object_init(INIT_FUNC_ARGS);
 
 PHP_METHOD(HttpUtil, date);
-PHP_METHOD(HttpUtil, absoluteURI);
+PHP_METHOD(HttpUtil, absoluteUri);
 PHP_METHOD(HttpUtil, negotiateLanguage);
 PHP_METHOD(HttpUtil, negotiateCharset);
 PHP_METHOD(HttpUtil, matchModified);