@Artem0071
Безработный mr. Junior

Как починить код/PHPStorm?

Есть интерфейс:
interface BaseModelInterface
{
    public function create();
    public function refactor();
    public function getObject();
}


Затем идет абстрактный класс:
abstract class BaseModel implements BaseModelInterface
{
    public function create()
    {
        ....
        return $this;
    };
    public function refactor()
    {
        ....
        return $this;
    };
    public function getObject()
    {
        ....
        return [];
    };
}


И некий класс:
class User extends BaseModel
{
    public function create()
    {
       ....
        return parent::create();
    }
    public function refactor()
    {
        ....
        return $this;
    }
}


ПРОБЛЕМА:
Когда я делаю вот это:
$User->create()->refactor()->getObject()  // Вот здесь ругается PHPStorm на getObject

PHPStorm подсвечивает getObject и говорит Method 'getObject' not found

Вопросы
1) Это я что то накосячил и все еще не разобрался в ООП?
1.1) Если да, то как исправить?
2) Это PHPStorm не понимает что от него хотят?
2.1) Если да, то как исправить?

PS. Код работает как надо, при работе ошибок нет. Просто смущает что шторму что то кажется неправильным
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Во-первых, в вашем абстрактном классе лишние точки с запятой после фигурных скобок методов.
Во-вторых, раз вы уже копипастили сюда весь код, то где у вас определяется $User?
В третьих, у меня все работает:

5a44c172df8c3897576880.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы