> andi Tue Nov 18 04:25:05 2003 EDT > > Modified files: > /ZendEngine2 zend.c zend_builtin_functions.c zend_constants.c > zend_errors.h zend_language_parser.y > Log: > - Add E_STRICT, to be used to warn purists (like Jani :) > Is it a good time to dredge up the old topic of making a PHP_DEPALIAS() to act like PHP_FALIAS() but throw an E_STRICT error saying that the function has been deprecated?
Here's a patch for review and discussion: Index: Zend/zend_API.h =================================================================== RCS file: /repository/ZendEngine2/zend_API.h,v retrieving revision 1.169 diff -u -r1.169 zend_API.h --- Zend/zend_API.h 18 Nov 2003 19:18:54 -0000 1.169 +++ Zend/zend_API.h 19 Nov 2003 00:28:55 -0000 @@ -51,6 +51,7 @@ #define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0) #define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0) #define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0) +#define ZEND_DEPALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED | ZEND_ACC_PUBLIC) #define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_FN(classname##_##name), arg_info, flags) #define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT) #define ZEND_MALIAS(name, classname, alias, arg_info, flags) \ Index: Zend/zend_compile.h =================================================================== RCS file: /repository/ZendEngine2/zend_compile.h,v retrieving revision 1.262 diff -u -r1.262 zend_compile.h --- Zend/zend_compile.h 10 Nov 2003 16:14:44 -0000 1.262 +++ Zend/zend_compile.h 19 Nov 2003 00:28:55 -0000 @@ -100,6 +100,7 @@ #define ZEND_ACC_INTERFACE 0x08 #define ZEND_ACC_ABSTRACT_CLASS 0x10 #define ZEND_ACC_FINAL_CLASS 0x20 +#define ZEND_ACC_DEPRECATED 0x40 /* The order of those must be kept - public < protected < private */ #define ZEND_ACC_PUBLIC 0x100 Index: Zend/zend_execute.c =================================================================== RCS file: /repository/ZendEngine2/zend_execute.c,v retrieving revision 1.549 diff -u -r1.549 zend_execute.c --- Zend/zend_execute.c 10 Nov 2003 16:23:12 -0000 1.549 +++ Zend/zend_execute.c 19 Nov 2003 00:28:55 -0000 @@ -2513,6 +2513,10 @@ NEXT_OPCODE(); /* Never reached */ } + if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) { + zend_error(E_STRICT, "%s() has been deprecated and may be removed in a future version.", EX(function_state).function->common.function_name); + } + zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) EX(opline)->extended_value, NULL); EX_T(EX(opline)->result.u.var).var.ptr_ptr = &EX_T(EX(opline)->result.u.var).var.ptr; Index: main/php.h =================================================================== RCS file: /repository/php-src/main/php.h,v retrieving revision 1.200 diff -u -r1.200 php.h --- main/php.h 3 Nov 2003 14:12:45 -0000 1.200 +++ main/php.h 19 Nov 2003 00:28:55 -0000 @@ -354,6 +354,7 @@ #define PHP_NAMED_FE ZEND_NAMED_FE #define PHP_FE ZEND_FE #define PHP_FALIAS ZEND_FALIAS +#define PHP_DEPALIAS ZEND_DEPALIAS #define PHP_ME ZEND_ME #define PHP_MODULE_STARTUP_N ZEND_MODULE_STARTUP_N -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php