Аз съм в беда, правейки IntelliJ IDEA дисплей наследствени методи правилно.
Имам резюме BaseController клас, съдържащ две защитени полеви променливи (f3 и db). В разширяването ForumController клас, db работи добре, но статичното f3 не (вижте екранните снимки по-долу).
Използваната рамка е FatFree, ако това помага.
Всяка помощ или предложение ще бъде високо оценена.
Отговори:
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, както в приетия отговор, е добре.