1

Est-ce encore possible? Par exemple, dis que j'ai un tableau de chiens. Comment puis-je obtenir l'achèvement du code pour fonctionner? Voici un code pour illustrer le problème. Tout conseil serait bon!code hinting/completion pour le tableau d'objets dans Zend Studio (ou tout autre IDE basé sur Eclipse)

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

pour ceux qui viennent de Google, j'ai trouvé la réponse ici (meilleur résultat pour l'indication de code de tableau): http://stackoverflow.com/questions/778564/phpdoc-type-hinting-for-array-of-objects – jusunlee

Répondre

1

Une façon indirecte de faire cela pourrait être

$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

Dans Zend Studio 11 J'utilise:

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