>Do you think there is still demand for such error mode control features?
>
>Personally, I've never seen anyone prefer silent mode, so I think it's worth 
>making the drastic change.

This may be right. There isn't a demand for this in **new** code and I
doubt anyone would come forward with a reason to use silent mode now.
However the purpose of keeping this mode is to enable old legacy code
to run without major refactoring. This is the practice coming from the
days before PHP 5 when using exceptions wasn't common. Plenty of
applications are still running code designed 20 years ago because PHP
keeps as much backward compatibility as possible. The code would
benefit from modernization, but this would require a lot of effort
from its maintainers.

We may get away with deprecating and removing PDO silent/warning mode
because it's an extension that was introduced in PHP 5 and everyone
was on board with using exception mode. We probably cannot remove
silent mode for other extensions that either mimic older extensions
that didn't use exceptions (e.g. mysqli) or have been introduced
before PHP 5. The reason is that people designed their code using
silent mode and removing it now would cause some serious headaches.

Another point to consider is that PDO had silent mode as default for a
long time. You may be surprised, but many people weren't aware that it
can throw exceptions. My guess is that's a very small proportion of
all projects though. With PHP 8.0, they just slapped one line of code
and called it a day. Having said that, I think removing PDO's silent
mode is possible soon, even in PHP 9.0, but we may anger some people.

All warning modes can be deprecated in PHP 8.4 and removed in PHP 9.0.
Silent mode of other extensions should be carefully reviewed one by
one. Deprecation in PHP 9.0 and removal in PHP 10.0 might be a better
option.

Regards,
Kamil

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

Reply via email to