X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_querystring_object.c;h=83f1dc6f09da9e550940069b7e65c62a74c1831c;hb=93a48c0a6710c7aa678ce0b48e6c1a5d2bf544ee;hp=fc17c4377092df3e78a9abd88934546a3348265e;hpb=253b7ec9bbb6006e4b79102ba8fe35a9fdf9ef46;p=m6w6%2Fext-http diff --git a/http_querystring_object.c b/http_querystring_object.c index fc17c43..83f1dc6 100644 --- a/http_querystring_object.c +++ b/http_querystring_object.c @@ -35,9 +35,11 @@ HTTP_BEGIN_ARGS(__construct, 0, 0) HTTP_ARG_VAL(params, 0) HTTP_END_ARGS; +#ifndef WONKY HTTP_BEGIN_ARGS(getInstance, 0, 0) HTTP_ARG_VAL(global, 0) HTTP_END_ARGS; +#endif HTTP_EMPTY_ARGS(toArray, 0); HTTP_EMPTY_ARGS(toString, 0); @@ -49,9 +51,8 @@ HTTP_BEGIN_ARGS(get, 0, 0) HTTP_ARG_VAL(delete, 0) HTTP_END_ARGS; -HTTP_BEGIN_ARGS(set, 0, 2) - HTTP_ARG_VAL(name, 0) - HTTP_ARG_VAL(value, 0) +HTTP_BEGIN_ARGS(set, 0, 1) + HTTP_ARG_VAL(params, 0) HTTP_END_ARGS; HTTP_BEGIN_ARGS(__getter, 0, 1) @@ -77,7 +78,9 @@ zend_function_entry http_querystring_object_fe[] = { HTTP_QUERYSTRING_ME(get, ZEND_ACC_PUBLIC) HTTP_QUERYSTRING_ME(set, ZEND_ACC_PUBLIC) +#ifndef WONKY HTTP_QUERYSTRING_ME(getInstance, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) +#endif HTTP_QUERYSTRING_GME(getBool, ZEND_ACC_PUBLIC) HTTP_QUERYSTRING_GME(getInt, ZEND_ACC_PUBLIC) @@ -223,7 +226,9 @@ static inline int _http_querystring_modify_array(zval *qarray, zval *array TSRML #define http_querystring_modify(q, p) _http_querystring_modify((q), (p) TSRMLS_CC) static inline int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC) { - if (Z_TYPE_P(params) == IS_ARRAY) { + if ((Z_TYPE_P(params) == IS_OBJECT) && instanceof_function(Z_OBJCE_P(params), http_querystring_object_ce TSRMLS_CC)) { + return http_querystring_modify_array(qarray, GET_PROP_EX(params, queryArray)); + } else if (Z_TYPE_P(params) == IS_ARRAY) { return http_querystring_modify_array(qarray, params); } else { int rv; @@ -242,6 +247,7 @@ static inline int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC) } } +#ifndef WONKY #define http_querystring_instantiate(g) _http_querystring_instantiate((g) TSRMLS_CC) static inline zval *_http_querystring_instantiate(zend_bool global TSRMLS_DC) { @@ -259,6 +265,7 @@ static inline zval *_http_querystring_instantiate(zend_bool global TSRMLS_DC) return zobj; } +#endif #define http_querystring_get(o, t, n, l, def, del, r) _http_querystring_get((o), (t), (n), (l), (def), (del), (r) TSRMLS_CC) static inline void _http_querystring_get(zval *this_ptr, int type, char *name, uint name_len, zval *defval, zend_bool del, zval *return_value TSRMLS_DC) @@ -421,6 +428,7 @@ PHP_METHOD(HttpQueryString, set) } /* }}} */ +#ifndef WONKY /* {{{ proto HttpQueryString HttpQueryString::getInstance([bool global = true]) * * Get a single instance (differentiates between the global setting). @@ -457,6 +465,7 @@ PHP_METHOD(HttpQueryString, getInstance) SET_EH_NORMAL(); } /* }}} */ +#endif /* {{{ Getters by type */ #define HTTP_QUERYSTRING_GETTER(method, TYPE) \