2013-05-15 3 views
0

Предположим, у меня есть следующий класс:Код намекая свойства метода в PhpStorm

namespace Acme\SuperBundle\Resources; 
use \DOMDocument; 
/** 
* Class XMLAnswerParser 
* @package Acme\SuperBundle\Resources 
* @author Quant 
* @param \DOMDocument $dom 
*/ 
class XMLAnswerParser 
{ 

public $dom; 
private $profile; 

// a whole lot of things 

protected function checkDOM() 
{ 
    $this->dom-> 

И я бы ожидать каких-либо IDE, чтобы дать мне намекал, зная, что свойство $ дом является DOMDocument. Как-то это не работает в моем phpstorm IDE. Я что-то не так с документацией класса?

Код не содержит ошибок, на случай, если вы спросите об этом.

+1

У вас нет записи docblock '@ var' для свойства dom ... у вас есть' @ param', застрявший в докблоке класса –

+0

Aha. Итак, я должен положить его над линией 'public $ dom'? – Quant

+1

Вы должны иметь запись '@ var' в docblock для каждого отдельного свойства; и '@ param' должны появиться в методах docblocks, а не в классах docblocks –

ответ

4
<?php 
/** 
* @var DOMDocument $dom 
*/ 
public $dom 
?> 

Был ли это способ!

+0

и не забывайте о соответствующем использовании для объекта. –

1

Добавить

namespace Acme\SuperBundle\Resources; 
use \DOMDocument; 
/** 
* Class XMLAnswerParser 
* @package Acme\SuperBundle\Resources 
* @author Quant 
*/ 
class XMLAnswerParser 
{ 

/** 
* @var \DOMDocument $dom 
*/ 
public $dom; 

private $profile; 

// a whole lot of things 

protected function checkDOM() 
{ 
    $this->dom-> 

Тогда IDE будет знать, что $ дом exatctly есть.

Смежные вопросы