/ / IntelliJ IDEA и PHP наследяване - php, intellij-idea

IntelliJ IDEA и PHP наследяване - php, intellij-idea

Аз съм в беда, правейки IntelliJ IDEA дисплей наследствени методи правилно.

Имам резюме BaseController клас, съдържащ две защитени полеви променливи (f3 и db). В разширяването ForumController клас, db работи добре, но статичното f3 не (вижте екранните снимки по-долу).

Използваната рамка е FatFree, ако това помага.

абстрактно BaseController разширяване ФорумКонтролер

Всяка помощ или предложение ще бъде високо оценена.

Отговори:

2 за отговор № 1

Използвайте маркерите на phpdoc за документиране на всички класове, свойства и методи. IntelliJ използва тези, за да определи какви е възможните стойности, които дадена собственост или променлива могат да задържат. В този случай документиране на $f3 собственост може да бъде достатъчна:

/**
* @var Base
*/
protected $f3;

След като напишете първия /** на линията преди собствеността и натискането на клавиша enter IntelliJ ще генерира docblock за вас с това, което вече знае.


0 за отговор № 2

В "fatfree" рамка, примерът на базовия клас ($ f3 във вашия код) се предава на конструктора, така че можете да използвате типа, който намеква там:

public function __construct(Base $f3){
$this->f3 = $f3;

Въпреки че извлича инстанцията от регистъра чрез статичното повикване Base::instance(); и използването на коментари phpdoc, както в приетия отговор, е добре.