В классе есть два магических метода __call и callStatic, с помощью которых перегружается условный метод read(). В случае обращения к данному методу как к статическому, ему передается id сущности для чтения. В случае обращения к нему, как к методу экземпляра класса, ему ничего не передается, id берется из свойства экземпляра.
В обоих случаях возвращается один и тот же либо вновь созданный, либо уже существующий экземпляр класса. Перед классом я пробую записать вот так вот оба варианта метода, статический и нет:
/**
* Class Entity
*
* @package MyCompany\Contracts
*
* @property array $data
* @property int $id
* @property string $name
*
* @method Entity read()
* @method static Entity read( $id )
*/
Но PhpStorm 2019.1 ругается на такую запись вот так:
Method with same name already defined in this class
Another definition with same name exists in this file
Кто прав, я или PhpStorm? Если я неправ, то как мне ублажить последнего?