I'm sorry, there's currently no way to document associative arrays or stdClass
objects in phpDocumentor or custom annotations formats understood by NetBeans.
From a design perspective, perhaps it could make sense to use proper classes:
class Bar
{
/**
* @var string
*/
public $test;
}
class Foo
{
public function bar(): Bar
{
$obj = new Bar;
$obj->test = 'test';
return $obj;
}
}
If you need no logic at all, the classes can be empty:
/**
* @property string $test
*/
class Bar
{
}
Otherwise, you can always trick the IDE with a stub file that defines a fake class but is never actually executed and then pretend that your variable belongs to that class:
$foo = new Foo;
/* @var $bar Bar *//** @var Bar $bar */
$bar = $foo->bar();
$bar->…
… where /* @var $bar Bar */
is for NetBeans 8 and earlier and /** @var Bar $bar */
for NetBeans 10 (and many other IDEs).