1

Ist das überhaupt möglich? Zum Beispiel, sagen wir, ich habe eine Reihe von Hunden. Wie bekomme ich die Code-Vervollständigung? Hier ist Code, um das Problem zu veranschaulichen. Jeder Rat wäre großartig!Code Hinting/Vervollständigung für Array von Objekten in Zend Studio (oder einer anderen Eclipse-basierten IDE)

class Dog { 

    private $name; 

    public static function init_many(array $names) { 
     foreach ($names as $n) { 
      $collection[] = new self($n); 
     } 
     return $collection; 
    } 

    public function __construct($n) { 
     $this->name = $n; 
    } 

    public function bark() { 
     return sprintf('woof! my name is %s', 
      $this->name 
     ); 
    } 
} 

$Scoobi = new Dog('scoobi'); 
$Scoobi->      // code hinting/completion works! 

$dogs = Dog::init_many(array('scoobi', 'lassie', 'bingo')); 
$dogs[0]->      // code hinting/completion doesn't work! 
+0

für die von Google kommen, fand ich die Antwort hier (Top-Ergebnis für Array-Code-Hinting): http://stackoverflow.com/questions/778564/phpdoc-type-hinting-for-array-of-objects – jusunlee

Antwort

1

Ein indirekter Weg

$dogs = Dog::init_many(array('scoobi', 'lassie', 'bingo')); 
foreach ($dogs as & $dog) 
{ 
    /* @var $dog Dog */ 
    $dog->   //code hinting works here, 
        //I use this all the time itereting over doctrine collections 
} 
1

In Zend Studio 11 Ich benutze sein könnte dies zu tun:

/** 
* 
* @return Dog[] 
*/ 
public static function init_many(array $names) { 
    foreach ($names as $n) { 
     $collection[] = new self($n); 
    } 
    return $collection; 
}