Завершение кода PHPStorm для вызова магических статических методов (с использованием синтаксиса фигурных скобок) [Pendent]

Используя следующий код, завершение кода работает отлично!

class FooClass
{
public function run(){}
}

/**
* @method static FooClass foo(bool $param1 = false)
*/

class Test
{
public static function __callStatic($name, $arguments)
{
//Implementation code ..
}
}

//Code completes fine for FooClass methods ..
Test::foo()->run();

Но возможно ли в IDE (PhpStorm) завершить код, используя следующий стиль записи метода вызова php (фигурные скобки)?

//Code NOT completes fine ..
Test::{"foo"}();

Если так, то как? Спасибо за помощь!

0

Решение

PhpStorm не поддерживает динамические поля / методы. Для статического инструмента трудно отследить, к какому полю / методу действительно осуществляется доступ. Давайте посмотрим на более реалистичный пример.

function foo($str) {
//Code NOT completes fine ..
Test::{$str}()->run();
}

Вот как обычно выглядит динамический вызов. В реальном коде, $str обычно представляет собой комбинацию внешнего ввода (например, из базы данных) и бизнес-логики. И то, и другое выходит за рамки статического анализа.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]