<?php
interface iFoo {
public function print(): iFoo;
}
class Foo implements iFoo {
public function print(): iFoo {
return $this;
}
public function chain(): iFoo {
return $this;
}
}
$foo = new Foo();
$foo->print()
->chain() // Method 'chain' not found in iFoo
->print();
Как я могу заставить PhpStorm распознавать цепной метод, даже если его нет в контракте?
Это потому, что вы говорите PHPStorm, что у вас будет тип возврата iFoo, который не имеет класса chain()
если ваш тип возврата Foo
Я думаю, это сработает.
print()
метод возвращает iFoo
пример:
public function print(): iFoo {
iFoo
не содержит chain()
Метод, поэтому вы видите «метод не найден». Вы можете изменить тип возврата на Foo
или добавить chain()
метод для iFoo
,