Предположим, у меня есть набор классов
class A {
use Dummy;
function getB() : B { ... }
}
class B {
function foo() { ... }
}
trait Dummy {
function works() {
if ($this instanceof A)
$this -> getB() -> foo(); // Typehinting works
}
function doesntWork() {
$this -> getB() -> foo(); // Method foo not found in...
}
}
Как мне получить PhpStorm, чтобы заставить печатать работу, как предполагается в методе doesntWork
? Я действительно раздражен этим, потому что большая часть моей работы основана на использовании методов основного класса в таких чертах, как этот, и я получаю много отвлекающего желтого цвета в PhpStorm …
Вы не можете сделать много прямо сейчас — это проблема IDE.
https://youtrack.jetbrains.com/issue/WI-35952 — смотреть этот билет (звезда / голосование / комментарий), чтобы получать уведомления о любом прогрессе.
Связанные с: https://youtrack.jetbrains.com/issue/WI-39004
Оказывается, есть обходной путь. В таком случае,
/**
* @method \Namespace\Name\B getB
*/
trait Dummy { ... }
Немного некрасиво но работает