2019-03-01 14:57:10 +01:00
|
|
|
<?php
|
|
|
|
namespace Psalm\Plugin\Hook;
|
|
|
|
|
|
|
|
use Psalm\CodeLocation;
|
|
|
|
use Psalm\StatementsSource;
|
|
|
|
|
|
|
|
interface MethodExistenceProviderInterface
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @return array<string>
|
|
|
|
*/
|
|
|
|
public static function getClassLikeNames() : array;
|
|
|
|
|
|
|
|
/**
|
2020-08-11 13:29:45 +02:00
|
|
|
* Use this hook for informing whether or not a method exists on a given object. If you know the method does
|
2020-08-11 20:36:59 +02:00
|
|
|
* not exist, return false. If you aren't sure if it exists or not, return null and the default analysis will
|
|
|
|
* continue to determine if the method actually exists.
|
2020-08-11 13:29:45 +02:00
|
|
|
*
|
2019-03-01 14:57:10 +01:00
|
|
|
* @return ?bool
|
|
|
|
*/
|
|
|
|
public static function doesMethodExist(
|
|
|
|
string $fq_classlike_name,
|
|
|
|
string $method_name_lowercase,
|
2020-09-07 01:36:47 +02:00
|
|
|
?StatementsSource $source = null,
|
|
|
|
?CodeLocation $code_location = null
|
2019-03-01 14:57:10 +01:00
|
|
|
);
|
|
|
|
}
|