On 28-4-2022 17:00, Christoph M. Becker wrote:
On 28.04.2022 at 16:09, Juliette Reinders Folmer wrote:
On 22-4-2022 8:47, Rowan Tommins wrote:
On 22 April 2022 02:02:58 BST,php-internals_nos...@adviesenzo.nl wrote:
I agree it would be a good idea to run a package analysis, but to be
fair, in all honesty that should have been done for the original RFC,
which was completely missing an impact analysis.
That's a fair point, but of course "somebody else should have done it
already" isn't a good excuse not to do it now.
3. As for the pattern being common or not - the fact that I found it
so easily in multiple random projects which I elected to test the
sniff against, makes me believe the pattern is not _uncommon_.
Since there has been some misunderstanding, the usage I think we need
to look for is where a deprecation notice would *not* be useful. In
other words, are there people using is_callable in such a way that
even if a value like "parent::foo" changes from returning "true" to
"false", there won't be anything that needs changing, because the code
is equally "happy" with both return values?
I freely admit that I can't think of any such usage off the top of my
head, but I wouldn't have thought of some of the examples already
raised either.
If an actual search fails to find such usages, or provides evidence
that it is very rare, then I am absolutely in favour of adding a
deprecation notice.
Ah! So you're basically asking for the impossible. Search for a code
pattern where a deprecation would not be useful, while noone has been
able to come up with one.
In that case: search done. Nothing found. Let's get this fixed.
Isn't the following a *very* typical use case?
if (is_callable($callback)) {
call_user_func($callback);
}
If $callback is something like "parent::foo", you get the deprecation
warning when you're actually calling the $callback. An additional
deprecation warning for the is_callable() call would not be really
helpful in this case.
I do not agree with that assessment. With the huge amount of deprecation
notices over the last few versions, it is pretty typical for people to
focus *only* on the code flagged by the deprecation notice and not look
at the wider context of the code.
So, like already happened in Symfony, the calls involving
`call_user_func()` were fixed, but the deprecated usages in calls to
`is_callable()` were not.
That said, I see the point in hinting at other usages (such as shown in
the OP), but I'm not really happy about a deprecation. What about
providing a patch which warns about such usages without planning to
integrate that patch into php-src? Similar like it was done with
<https://github.com/php/php-src/pull/3917>.
Eh... sorry, but I'm not sure what you mean. I can't imagine you mean
creating a patch which is never intended to get merged ? That doesn't
sound very useful.
Smile,
Juliette