PHPStorm では、オブジェクト配列のコードヒントはシンプルで素晴らしいものです。
class FooList {
public function __construct(){
$this->_fooList[] = new Foo(1);
$this->_fooList[] = new Foo(2);
$this->_fooList[] = new Foo(3);
$this->_fooList[] = new Foo(4);
}
/**
* @return Foo[]
*/
getFoos() {
return $this->_fooList;
}
}
だから私がするなら...
$fooList = new FooList();
foreach($fooList as $foo)
{
// Nice hinting.
$foo->FooMethod...
}
PHPStorm は、$fooList が Foo の配列であることを理解しているため、$foo の型が Foo であることを認識しています。
問題は、FooList の配列が必要なことです。
$listOfLists[] = new FooList();
$listOfLists[] = new FooList();
$listOfLists[] = new FooList();
$listOfLists[] = new FooList();
foreach ($listOfLists as $fooList)
{
foreach($fooList as $foo)
{
// No code hinting for $foo :(
}
}
foreach内でヒントを手動でコーディングできることは知っています...
foreach ($listOfLists as $fooList)
{
foreach($fooList as $foo)
{
/** $var $foo Foo */
// Code hinting, yay!!
}
}
または ...
foreach ($listOfLists as $fooList)
{
/** $var $fooList Foo[] */
foreach($fooList as $foo)
{
// Code hinting, yay!!
}
}
$ listOfListsは Foo 配列のビルドであるため、 listOfListsを実装するたびに思い出させることなく、私が話していることを知っているはずです。
これを実装する方法はありますか?