ONPHP_METHOD(Ternary, create) { zval *object, *value; if (ZEND_NUM_ARGS() == 1) { ONPHP_GET_ARGS("z", &value); } else { ALLOC_INIT_ZVAL(value); ZVAL_NULL(value); } ONPHP_MAKE_OBJECT(Ternary, object); ONPHP_TERNARY_SET_VALUE(object); out: if (ZEND_NUM_ARGS() != 1) { ZVAL_FREE(value); } if (EG(exception)) { zval_ptr_dtor(&object); return; } RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(DBValue, create) { zval *object, *value; ONPHP_GET_ARGS("z", &value); ONPHP_MAKE_OBJECT(DBValue, object); ONPHP_UPDATE_PROPERTY(object, "value", value); RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(Ternary, spawn) { zval *value, *true, *false, *null, *result, *out; ONPHP_GET_ARGS("zzz|z", &value, &true, &false, &null); ALLOC_INIT_ZVAL(result); ONPHP_MAKE_OBJECT(Ternary, out); if (ZEND_NUM_ARGS() == 3) { ALLOC_INIT_ZVAL(null); ZVAL_NULL(null); } if ( is_identical_function(result, value, true TSRMLS_CC) && (zval_is_true(result)) ) { ONPHP_UPDATE_PROPERTY_BOOL(out, "trinity", 1); } else if ( is_identical_function(result, value, false TSRMLS_CC) && (zval_is_true(result)) ) { ONPHP_UPDATE_PROPERTY_BOOL(out, "trinity", 0); } else if ( ( is_identical_function(result, value, null TSRMLS_CC) && (zval_is_true(result)) ) || ( Z_TYPE_P(null) == IS_NULL ) ) { ONPHP_UPDATE_PROPERTY_NULL(out, "trinity"); } else { ONPHP_THROW_NORET(WrongArgumentException, "failed to spawn Ternary"); } ZVAL_FREE(result); if (ZEND_NUM_ARGS() == 3) { ZVAL_FREE(null); } if (EG(exception)) { return; } RETURN_ZVAL(out, 1, 1); }
ONPHP_METHOD(Form, create) { zval *object; ONPHP_MAKE_OBJECT(Form, object); ONPHP_CALL_METHOD_0_NORET(object, "__construct", NULL); if (EG(exception)) { ZVAL_FREE(object); return; } RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(DBField, create) { zval *field, *table, *object; ONPHP_GET_ARGS("z|z", &field, &table); ONPHP_MAKE_OBJECT(DBField, object); ONPHP_UPDATE_PROPERTY(object, "field", field); if (ZEND_NUM_ARGS() == 2) { ONPHP_CALL_METHOD_1(object, "settable", NULL, table); } RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(DBBinary, create) { zval *object, *value; ONPHP_GET_ARGS("z", &value); ONPHP_MAKE_OBJECT(DBBinary, object); ONPHP_CALL_PARENT_1_NORET(object, "__construct", NULL, value); if (EG(exception)) { ZVAL_FREE(object); return; } RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(ExtractPart, create) { zval *object, *what, *from; ONPHP_GET_ARGS("zz", &what, &from); ONPHP_MAKE_OBJECT(ExtractPart, object); ONPHP_CALL_METHOD_2_NORET(object, "__construct", NULL, what, from); if (EG(exception)) { ZVAL_FREE(object); return; } RETURN_ZVAL(object, 1, 1); }
ONPHP_METHOD(ExtractPart, __construct) { zval *what, *from, *fromField; zend_class_entry **cep; ONPHP_GET_ARGS("zz", &what, &from); if (ONPHP_INSTANCEOF(from, DialectString)) { if ( !( ONPHP_INSTANCEOF(from, DBValue) || ONPHP_INSTANCEOF(from, DBField) ) ) { ONPHP_THROW(WrongArgumentException, NULL); } } ONPHP_MAKE_OBJECT(DBField, fromField); ONPHP_CALL_METHOD_1_NORET(fromField, "__construct", NULL, from); if (EG(exception)) { ZVAL_FREE(fromField); return; } ONPHP_UPDATE_PROPERTY(getThis(), "from", fromField); zval_ptr_dtor(&fromField); ONPHP_FIND_FOREIGN_CLASS("DatePart", cep); if ( !( (Z_TYPE_P(what) == IS_OBJECT) && instanceof_function(Z_OBJCE_P(what), *cep TSRMLS_CC) ) ) { zval *whatPart; ALLOC_INIT_ZVAL(whatPart); object_init_ex(whatPart, *cep); Z_TYPE_P(whatPart) = IS_OBJECT; ONPHP_CALL_METHOD_1_NORET(whatPart, "__construct", NULL, what); if (EG(exception)) { ZVAL_FREE(whatPart); return; } ONPHP_UPDATE_PROPERTY(getThis(), "what", whatPart); zval_ptr_dtor(&whatPart); } else { ONPHP_UPDATE_PROPERTY(getThis(), "what", what); zval_ptr_dtor(&what); } }