#include "php_http_querystring_object.h"
#include "php_http_exception_object.h"
-#define HTTP_BEGIN_ARGS(method, ret_ref, req_args) HTTP_BEGIN_ARGS_EX(HttpQueryString, method, ret_ref, req_args)
-#define HTTP_EMPTY_ARGS(method, ret_ref) HTTP_EMPTY_ARGS_EX(HttpQueryString, method, ret_ref)
+#define HTTP_BEGIN_ARGS(method, req_args) HTTP_BEGIN_ARGS_EX(HttpQueryString, method, 0, req_args)
+#define HTTP_EMPTY_ARGS(method) HTTP_EMPTY_ARGS_EX(HttpQueryString, method, 0)
#define HTTP_QUERYSTRING_ME(method, visibility) PHP_ME(HttpQueryString, method, HTTP_ARGS(HttpQueryString, method), visibility)
#define HTTP_QUERYSTRING_GME(method, visibility) PHP_ME(HttpQueryString, method, HTTP_ARGS(HttpQueryString, __getter), visibility)
-HTTP_BEGIN_ARGS(__construct, 0, 0)
+HTTP_BEGIN_ARGS(__construct, 0)
HTTP_ARG_VAL(global, 0)
HTTP_ARG_VAL(params, 0)
HTTP_END_ARGS;
-HTTP_BEGIN_ARGS(getInstance, 0, 0)
+#ifndef WONKY
+HTTP_BEGIN_ARGS(getInstance, 0)
HTTP_ARG_VAL(global, 0)
HTTP_END_ARGS;
+#endif
-HTTP_EMPTY_ARGS(toArray, 0);
-HTTP_EMPTY_ARGS(toString, 0);
+HTTP_EMPTY_ARGS(toArray);
+HTTP_EMPTY_ARGS(toString);
-HTTP_BEGIN_ARGS(get, 0, 0)
+HTTP_BEGIN_ARGS(get, 0)
HTTP_ARG_VAL(name, 0)
HTTP_ARG_VAL(type, 0)
HTTP_ARG_VAL(defval, 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, 1)
+ HTTP_ARG_VAL(params, 0)
HTTP_END_ARGS;
-HTTP_BEGIN_ARGS(__getter, 0, 1)
+HTTP_BEGIN_ARGS(__getter, 1)
HTTP_ARG_VAL(name, 0)
HTTP_ARG_VAL(defval, 0)
HTTP_ARG_VAL(delete, 0)
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)
#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;
}
}
+#ifndef WONKY
#define http_querystring_instantiate(g) _http_querystring_instantiate((g) TSRMLS_CC)
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)
}
/* }}} */
+#ifndef WONKY
/* {{{ proto HttpQueryString HttpQueryString::getInstance([bool global = true])
*
* Get a single instance (differentiates between the global setting).
SET_EH_NORMAL();
}
/* }}} */
+#endif
/* {{{ Getters by type */
#define HTTP_QUERYSTRING_GETTER(method, TYPE) \