Корректная подсветка методов базового класса при автовайринге
Добавлено: 2020.01.30, 18:44
Приветствую. Есть такая структура
В конструкторе UserController у нас в $user экземпляр UserRepository и вызов $user->findByPk(123) phpstorm воспринимает нормально. Но вот $user->abstractClassMethod() уже подсвечивает, ругаясь на отсутствующий метод abstractClassMethod. Что очевидно, т.к. в интерфейсе его нет.
Не соображу, как это можно решить?
Код: Выделить всё
interface User {
public function findByPk($pk);
}
abstract class AbstractBaseRepository {
public function abstractClassMethod(): int {
// some code
}
}
class UserRepository extends AbstractBaseRepository implements User {
public function findByPk($pk) {
// some code
}
}
class UserController {
public function __construct(User $user) {
// тут у нас экземпляр UserRepository, полученный через DI и autowire
$user->findByPk(123);
$user->abstractClassMethod();
}
}
Не соображу, как это можно решить?