В PHPStorm код Hinting для массива объектов прост и узок;PHPStorm Code Подсказка для массива массивов объектов
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.
Проблема в том, что я хочу массив 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 ($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.
Есть ли способ реализовать это?
http://youtrack.jetbrains.com/issue/WI-12303 – LazyOne
Благодаря LazyOne ! Я уже поддержал эту проблему. Если вы ответите на это сообщение с ответом, в котором объясняется, что эта проблема на самом деле является запрошенной функцией, я соглашусь с ней. –
Этот вопрос не соответствует теме, потому что речь идет о запросе функции в стороннем приложении. –