Closed MocioF closed 2 years ago
Hello @MocioF! 👋 Thank you for this issue.
PHPStan is an tool for OOP. It does not recognize a global function as a callable.
No! I was wrong. Recently it does support that. https://phpstan.org/r/2d4c20b6-4b7f-4511-a837-18127e64d7f3 What version of PHPStan do you have?
Got it!
array_map( 'esc_url_raw', $input['endpoints'], $protocols = array( array( 'https' ) ) )
...actually there must be as many array( 'https' )
-s as endpoints.
I will try, but I am not sure the problem is this one. https://phpstan.org/r/1921d0e3-e3b7-4d9e-8e96-968a9638f2b2
The problem in my code (a class in a wordpress plugin) is with parameter #1
of array_map.
It seems that 'esc_url_raw' is not seen as a callable.
I got this problem in activator class; could the issue been related to this code is run before init? (I don't know exactly how phpstan discovers symbols
The cause of the problem is that esc_url_raw
's second parameter is an array, not a string.
https://developer.wordpress.org/reference/functions/esc_url_raw/
Writing a class for my plugin, I used this code to sanitize input:
where
$input['endpoints']
is an array.PHPStan seems not to see
esc_url_raw
as a callable function, and says:I am not sure if this is related to stubs, or it is a syntax problem.