On Tue, Sep 9, 2014 at 11:42 PM, Tjerk Meesters <tjerk.meest...@gmail.com> wrote: > Hi, > > When I was fixing test cases on my `kill-ereg` branch I noticed a Reflection > test case for `ReflectionFunction::isDeprecated()`. > > The problem with such a test case is that you’d be chasing deprecated > functions to tests against as we move along; this is the current list of > deprecated functions as taken from a typical 5.4 installation: > > Since 4.1.0: call_user_method, call_user_method_array > Since 4.3.7: mysql_list_tables, mysql_listtables > Since 5.3 : ereg, ereg_replace, eregi, eregi_replace, split, spliti, > sql_regcase, mysql_db_query, magic_quotes_runtime, set_magic_quotes_runtime, > set_socket_blocking > Since 5.4 : mysql_list_dbs > > The above are, as far as I’m concerned, all potential candidates for removal > in PHP 7, so in order to reliably test a deprecated function I would suggest > introducing a hidden function with this signature: > > void __deprecated__() { } > > And mark that function as eternally deprecated using the ZEND_ACC_DEPRECATED > flag. > > Thoughts?
This sounds like a much better solution than what we have. The only way the test could be less brittle is if you could define a function and deprecate it in userland as part of the test. Since we don't have that capability and don't think we should add it I say +1. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php