anotar una variable local en php


Estoy usando Eclipse PDT y quiero anotar una variable local usando Phpdoc.

Todo lo que veo es que puedo anotar las variables/propiedades de una clase usando @var o incluso @property, pero ¿cómo es esto posible para una variable local?

¿Cómo puedo hacer algo como esto?

function foo(){
  /** @var Stock $a */
  $a->save();
}
Author: hakre, 2013-01-02

2 answers

El estándar Phpdoc no cubre estas anotaciones (solo cubre las propiedades de clase con la etiqueta @var); sin embargo, es perfectamente posible en Eclipse (por ejemplo, PDT):

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

Esto también funciona en todos los otros IDEs PHP como Netbeans o Phpstorm, lo que es útil si intercambia su código con otros.

Código de ejemplo:

<?php

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

Captura de pantalla de ejemplo (Eclipse PDT (Indigo)):

PDT Eclipse (Índigo)

Preguntas y Respuestas relacionadas:

 50
Author: hakre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:26

Esta es una vieja pregunta, pero solo para referencia. Debe incluir la instrucción Use para el Type en el archivo actual para @var trabajo de anotación

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

...

/* @var $product_type ProductType */
$foo = $product_type->getName();
 5
Author: Gabriel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-03 03:02:56