Извините, в настоящее время нет способа документировать ассоциативные массивы или stdClass
объекты в phpDocumentor или в пользовательских форматах аннотаций, понятных для NetBeans.
С точки зрения дизайна, возможно, имеет смысл использовать правильные классы:
class Bar
{
/**
* @var string
*/
public $test;
}
class Foo
{
public function bar(): Bar
{
$obj = new Bar;
$obj->test = 'test';
return $obj;
}
}
Если вам вообще не нужна логика, классы могут быть пустыми:
/**
* @property string $test
*/
class Bar
{
}
В противном случае вы всегда можете обмануть IDE с помощью файла-заглушки, который определяет фиктивный класс, но никогда не выполняется, а затем притворяться, что ваша переменная принадлежит этому классу:
$foo = new Foo;
/* @var $bar Bar *//** @var Bar $bar */
$bar = $foo->bar();
$bar->…
… где /* @var $bar Bar */
для NetBeans 8 и более ранних версий и /** @var Bar $bar */
для NetBeans 10 (и многих других IDE).