diff --git a/php_midgard_query_constraints.c b/php_midgard_query_constraints.c index 81b2422..aab8895 100644 --- a/php_midgard_query_constraints.c +++ b/php_midgard_query_constraints.c @@ -220,10 +220,17 @@ static PHP_METHOD(midgard_query_constraint_group, __construct) int type_len = 3, num_varargs = 0; zval ***varargs = NULL; +#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 2 + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &type, &type_len) == FAILURE) { + zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Failed to create constraint group"); + return; + } +#else if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s*", &type, &type_len, &varargs, &num_varargs) == FAILURE) { zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Failed to create constraint group"); return; } +#endif MidgardQueryConstraintGroup *constraint_group = NULL; @@ -265,8 +272,11 @@ static PHP_METHOD(midgard_query_constraint_group, __construct) ZEND_BEGIN_ARG_INFO_EX(arginfo_midgard_query_constraint_group___construct, 0, 0, 0) ZEND_ARG_INFO(0, type) +#if PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 2 +#else ZEND_ARG_OBJ_INFO(0, constraint, midgard_query_constraint_simple, 1) ZEND_ARG_INFO(0, ...) +#endif ZEND_END_ARG_INFO() static PHP_METHOD(midgard_query_constraint_group, get_type) diff --git a/tests_templates/042-midgard_query_select.phpt b/tests_templates/042-midgard_query_select.phpt index 4eb3d59..261203e 100644 --- a/tests_templates/042-midgard_query_select.phpt +++ b/tests_templates/042-midgard_query_select.phpt @@ -50,11 +50,10 @@ var_dump($list[0]->a == 'abc'); var_dump($list[1]->a == 'abc'); -$group = new midgard_query_constraint_group( - 'AND', - new midgard_query_constraint(new midgard_query_property('a', $storage), '=', new midgard_query_value('abc')), - new midgard_query_constraint(new midgard_query_property('b', $storage), '=', new midgard_query_value('ghi')) -); +$group = new midgard_query_constraint_group('AND'); + +$group->add_constraint(new midgard_query_constraint(new midgard_query_property('a', $storage), '=', new midgard_query_value('abc'))); +$group->add_constraint(new midgard_query_constraint(new midgard_query_property('b', $storage), '=', new midgard_query_value('ghi'))); var_dump($q->set_constraint($group)); var_dump($q->execute());