Allow "proxy" ovjects to substitute their class names through get_class_name() handler (similar to var_dump() and others).

This commit is contained in:
Dmitry Stogov 2016-06-22 17:23:04 +03:00
parent c196f9cdf7
commit 3c84e5e1ce
2 changed files with 17 additions and 5 deletions

View file

@ -563,11 +563,13 @@ static void _build_trace_args(zval *arg, smart_str *str) /* {{{ */
case IS_ARRAY:
smart_str_appends(str, "Array, ");
break;
case IS_OBJECT:
case IS_OBJECT: {
zend_string *class_name = Z_OBJ_HANDLER_P(arg, get_class_name)(Z_OBJ_P(arg));
smart_str_appends(str, "Object(");
smart_str_appends(str, ZSTR_VAL(Z_OBJCE_P(arg)->name));
smart_str_appends(str, ZSTR_VAL(class_name));
smart_str_appends(str, "), ");
break;
}
}
}
/* }}} */