.. annoying top posting...

This is getting close to a good solution.

ini option mysql_is_deprecated - can not be set in .ini/htaccess etc, only by ini_set() - so hosters/distros can not fix it...

Normally added just before mysql_connect...

ini_set('mysql_is_deprecated', "I WILL NOT USE IT IN THE FUTURE");
mysql_connect(......)

if the ini value is not set, then mysql_connect() can issue a E_DEPRECATED warning

"Mysql is deprecated, use mysqli or PDO, to remove this warning you can set mysql_is_deprecated"

They then have to google mysql_is_deprecated, which tells them to use the magic string...

Solves:
- Users will get warnings on upgrading - it can not be hidden by hosters/distros etc. - Users can easily disable the warning, however they will be explicitly aware of the problem.

Backwards/forward compatible....

Regards
Alan





On Thursday, November 29, 2012 07:00 AM, David Muir wrote:
On 29/11/12 05:09, Ángel González wrote:
I see it as simple to show E_DEPRECATED but not when installed from PECL.

1) Add a
int mysql_extension_triggers_deprecated_warning = 1;

And use it as a conditional for triggering the warning.

2) Copy the extension code to PECL

3) Add these changes in PECL
- If the mysql functions are not already registered,
register them with the bundled code.
- Set mysql_extension_triggers_deprecated_warning = 0;

4) That's it.



Then people (distros, hosts, etc) will just install it from PECL instead to avoid all the E_DEPRECATED mess.

David




--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to