php - PHPStorm type hinting subclasses of baseclass -
with respect post:
this 1 edge case in phpstorm type hinting. please try follow along - i'll best clear possible:
so, i've got base abstract class:
abstract class mybasecontroller { protected $_model; ... } which class inherits from:
class mycontroller extends mybasecontroller { $hello = 'hello'; ... } and further extended third class:
class mynewcontroller extends mycontroller { public $myvar; $this->_model = new mymodel(); ... public function myfunc(){ // !!form underlined as: "method 'form' not found in class"!! $form = $this->_model->form($new_variable); } below sample of mymodel class:
class mymodel extends basemodel { $world = 'world'; public function form($my_variable) { do_something(); } my true question how "phpdoc" scenario:
a subclass mynewcontroller using inherited variable _model assign instance of class mymodel has unique function form. how should phpstorm find out form in mynewcontroller?
my solution far involves documenting mybasecontroller this:
abstract class mybasecontroller { /** * @var object */ protected $_model; ... } however think @var object broad (phpstorm won't find declaration) , guess there should better (and more specific) way this.
maybe instead do:
/** * @var basemodel */ if phpstorm had way of looking subclasses method.
any ideas? thank in advance.
you can specify property type in subclass without introducing new code, using @property annotation:
/** * @property mymodel $_model */ class mynewcontroller extends mycontroller
Comments
Post a Comment