У меня есть метод, который принимает обратный вызов в качестве параметра. Я хотел бы предоставить сигнатуру параметра для обратного вызова как PHPDoc, чтобы моя IDE (PHPStorm) могла выдавать допустимые подсказки типа для функций, переданных моему методу, или, по крайней мере, кто-то, кто смотрит на код, может определить подпись обратного вызова, который они 'предназначен для предоставления.
Например:
class Foo {
public $items = [];
/**
* @param Callable(
* @param ArrayObject $items The list of items that bar() will return
* ) $baz A callback to receive the items
**/
public function bar(Callable $baz) {
$items = new ArrayObject($this->items);
$baz($items);
}
}
Метод bar
имеет один параметр $baz
, который является функцией обратного вызова. Любая функция, передаваемая как параметр bar()
, должна принимать ArrayObject
как единственный параметр.
В идеале должно быть возможно включить несколько параметров для Callable
, как и для любого другого метода.
Когда я пишу следующий код:
$foo = new Foo();
$foo->bar(function(
... Затем я должен получить список параметров, который правильно намекает тип (ArrayObject
) принятого параметра для этого вызова функции.
Возможно ли такое? Поддерживает ли PHPStorm или другую среду IDE? Есть ли рекомендуемый/стандартный способ документирования этого, даже если нет поддержки IDE?