Hello all.
Attached is a patch to tweak expected parameter message a little.
Currently:
[EMAIL PROTECTED] 5.2$ sapi/cli/php -c php.ini -r '$obj = new DateTime;
timezone_name_get($obj);'
PHP Warning: timezone_name_get() expects parameter 1 to be
DateTimeZone, object given in Command line code on line 1
After the patch:
[EMAIL PROTECTED] 5.2$ sapi/cli/php -c php.ini -r '$obj = new DateTime;
timezone_name_get($obj);'
PHP Warning: timezone_name_get() expects parameter 1 to be
DateTimeZone, DateTime object given in Command line code on line 1
That is, if given parameter is object we print its type out too.
-Hannes
Index: Zend/zend_API.c
===================================================================
RCS file: /repository/ZendEngine2/zend_API.c,v
retrieving revision 1.296.2.27.2.22
diff -u -r1.296.2.27.2.22 zend_API.c
--- Zend/zend_API.c 25 Jul 2006 06:49:38 -0000 1.296.2.27.2.22
+++ Zend/zend_API.c 10 Sep 2006 21:56:27 -0000
@@ -621,9 +621,15 @@
char *space;
char *class_name = get_active_class_name(&space
TSRMLS_CC);
- zend_error(E_WARNING, "%s%s%s() expects parameter %d to
be %s, %s given",
+ if(Z_TYPE_PP(arg) == IS_OBJECT) {
+ zend_error(E_WARNING, "%s%s%s() expects
parameter %d to be %s, %s object given",
+ class_name, space,
get_active_function_name(TSRMLS_C), arg_num, expected_type,
+ Z_OBJCE_PP(arg)->name);
+ } else {
+ zend_error(E_WARNING, "%s%s%s() expects
parameter %d to be %s, %s given",
class_name, space,
get_active_function_name(TSRMLS_C), arg_num, expected_type,
zend_zval_type_name(*arg));
+ }
}
return FAILURE;
}
Index: Zend/zend_API.c
===================================================================
RCS file: /repository/ZendEngine2/zend_API.c,v
retrieving revision 1.400
diff -u -r1.400 zend_API.c
--- Zend/zend_API.c 28 Aug 2006 17:14:49 -0000 1.400
+++ Zend/zend_API.c 10 Sep 2006 22:00:02 -0000
@@ -826,9 +826,15 @@
char *space;
zstr class_name = get_active_class_name(&space
TSRMLS_CC);
- zend_error(E_WARNING, "%v%s%v() expects parameter %d to
be %R, %s given",
+ if(Z_TYPE_PP(arg) == IS_OBJECT) {
+ zend_error(E_WARNING, "%v%s%v() expects
parameter %d to be %R, %v object given",
+ class_name, space,
get_active_function_name(TSRMLS_C), arg_num, ret_type, expected_type,
+ Z_OBJCE_PP(arg)->name);
+ } else {
+ zend_error(E_WARNING, "%v%s%v() expects
parameter %d to be %R, %s given",
class_name, space,
get_active_function_name(TSRMLS_C), arg_num, ret_type, expected_type,
zend_zval_type_name(*arg));
+ }
}
return FAILURE;
}
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php