Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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);
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
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);
	}
}