web-dev-qa-db-fra.com

Annoter une variable locale en PHP

J'utilise Eclipse PDT et je veux annoter une variable locale à l'aide de phpdoc.

Tout ce que je vois, c'est que je peux annoter les variables/propriétés d'une classe en utilisant @var ou même @property, mais comment est-ce possible pour une variable locale?

Comment puis-je faire quelque chose comme ça?

function foo(){
  /** @var Stock $a */
  $a->save();
}
27
tzortzik

La norme phpdoc ne couvre pas ces annotations (il ne couvre que les propriétés de la classe avec la balise @var); Cependant, il est parfaitement possible dans Eclipse (E.G. PDT):

/* @var $variable Type */
 ^         ^        `--- type
 |      variable           
 |
 `--- single star

Cela fonctionne également dans tous les autres IDs PHP comme NetBeans ou PHPSTorm qui est utile si vous échangez votre code avec d'autres personnes.

Exemple de code:

<?php

/* @var $doc DOMDocument */
$doc->
 

Exemple d'écran (Eclipse PDT (Indigo)):

Eclipse PDT (Indigo)

Question et réponses connexes:

59
hakre

C'est une ancienne question, mais seulement pour référence. Vous devez inclure l'instruction Use pour le fichier Type dans le fichier actuel afin de @var travaux d'annotation

<?php
use YourVendor\YourBundle\Entity\ProductType;

...

/* @var $product_type ProductType */
$foo = $product_type->getName();
5
Gabriel