2010-04-15 14 views
12

En utilisant Eclipse + PDT, je sais que vous pouvez spécifier le type de retour d'une méthode ou le type d'une variable dans une méthode via des indications de type.PHP: Conseils de type pour les champs avec Eclipse PDT

Que diriez-vous des champs de classe? Puis-je déclarer le type d'un champ afin de permettre l'auto-complétion pour cette variable?

J'ai essayé quelque chose sur les lignes de:

class MyClass { 

    protected $Field; /* @var $Field MyType */ 

    ... 

mais il ne fonctionne pas.

Existe-t-il un moyen de réaliser l'auto-complétion des champs de classe avec Eclipse et PDT?

grâce,

Silvio

Répondre

18

Oui, il y a! Tout simplement mettre le type var avant la déclaration, comme ceci:

/** 
* @var Type 
*/ 
protected $Field; 

Assurez-vous d'utiliser les commentaires de style javadoc (/ **, non seulement/*) J'ai trouvé en sélectionnant le champ dans le « Outline "afficher, puis cliquez avec le bouton droit sur> Source> Générer un commentaire d'élément.

+0

Cela fonctionne pour moi, mais je ne vois pas la section "Source> Générer". Y a-t-il un autre plugin Eclipse dont j'ai besoin pour voir ça? –

+0

@Matt Connolly: J'ai installé PDT tout en un et je l'ai, pas de plugin supplémentaire spécial. Quelles entrées voyez-vous lorsque vous cliquez avec le bouton droit sur un élément de la vue Structure? – greg0ire

+0

Ne fonctionne pas pour moi dans Indigo. – jsalvata

19

Et si vous avez besoin pour une variable locale non déclarée, vous pouvez utiliser

/* @var $varname vartype */ 

Ceci est très utile si vous itérer sur un tableau d'objets avec un foreach.

Veuillez noter que nous devons le taper avec un astérisque/* et le tout sur une ligne. Une déclaration doit être placée avant l'utilisation de la variable.

+0

Je n'arrive pas à faire fonctionner ceci de manière cohérente. Cela fonctionne parfois - mais d'autres fois, ça ne fonctionne pas. Je n'arrive pas à trouver un motif pour ça. –

+0

Cela fonctionne très bien pour moi avec mes propres noms de classe. Avez-vous ouvert plus d'un projet en même temps? Cela perturbe parfois mon éclipse. – Martin

+0

Bonne fonctionnalité! Bien, j'aimerais vraiment savoir pourquoi ils ont choisi d'utiliser la version à astérisque unique, ont un nom et un type différent de '@ param' ou le _other_' @ var' et exigent également le nom même si vous le mettez correctement avant la variable ... mais, eh bien, c'est peut-être juste pour ne pas confondre les programmeurs PHP avec trop de cohérence. –